Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | /**
* GitLab CI Configurator
*
* Generates GitLab CI/CD pipeline files for Hugo site builds.
*/
import path from 'path';
import fs from 'fs-extra';
import type { CIConfigurator, CIWorkflowOptions } from './index.js';
/**
* GitLab CI/CD Configurator
*/
export class GitlabCIConfigurator implements CIConfigurator {
getName(): string {
return 'GitLab CI/CD';
}
async writeWorkflow(destinationPath: string, options: CIWorkflowOptions): Promise<void> {
const hugoVersion = options.hugoVersion || '0.81.0';
const baseUrlArg = options.overrideBaseURL ? `--baseURL ${options.overrideBaseURL}` : '';
const yaml = `image: registry.gitlab.com/pages/hugo/hugo_extended:${hugoVersion}
variables:
GIT_SUBMODULE_STRATEGY: recursive
stages:
- build
- deploy
build:
stage: build
script:
- hugo --minify ${baseUrlArg}
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_BRANCH == "${options.branch}"
pages:
stage: deploy
script:
- echo "Deploying to GitLab Pages"
artifacts:
paths:
- public
rules:
- if: $CI_COMMIT_BRANCH == "${options.branch}"
`;
await fs.writeFile(
path.join(destinationPath, '.gitlab-ci.yml'),
yaml,
'utf-8'
);
}
}
|