All files / backend/dist/sync/ci-configurators gitlab-ci.js

0% Statements 0/5
0% Branches 0/4
0% Functions 0/2
0% Lines 0/5

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                                                                                                   
/**
 * GitLab CI Configurator
 *
 * Generates GitLab CI/CD pipeline files for Hugo site builds.
 */
import path from 'path';
import fs from 'fs-extra';
/**
 * GitLab CI/CD Configurator
 */
export class GitlabCIConfigurator {
    getName() {
        return 'GitLab CI/CD';
    }
    async writeWorkflow(destinationPath, options) {
        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');
    }
}