include: - local: 'prezbuilder-ci.yml' default: retry: 2 interruptible: true stages: - lint - build - test - deploy lint: stage: lint tags: [docker] image: node:12-buster variables: NPM_CONFIG_CACHE: "$CI_PROJECT_DIR/.npm" before_script: - node --version - npm --version - npm install script: - npm run lint cache: key: "$CI_COMMIT_REF_SLUG-$CI_JOB_NAME" paths: - "$NPM_CONFIG_CACHE" docker: stage: build tags: [dind] variables: IMAGE: "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_NAME" before_script: - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" "$CI_REGISTRY" script: - docker build --tag "$IMAGE" . - docker run --rm "$IMAGE" build - docker push "$IMAGE" npm-test: stage: test image: node:12 before_script: - apt-get update -yq && apt-get install -yq pandoc wkhtmltopdf - mkdir -p $HOME/prezbuilder - cd $HOME/prezbuilder - npm install "git+${CI_REPOSITORY_URL}#${CI_COMMIT_REF_NAME}" - ln -s $HOME/prezbuilder/node_modules/.bin/prezbuilder /usr/local/bin/prezbuilder script: - prezbuilder build src public docker-test: stage: test tags: [dind] before_script: - wget "${CI_PROJECT_URL}/-/raw/${CI_COMMIT_REF_NAME}/bin/prezbuilder-docker?inline=false" -O /usr/local/bin/prezbuilder-docker - chmod a+rx /usr/local/bin/prezbuilder-docker script: - prezbuilder-docker build src public pages: extends: .prezbuilder variables: PREZBUILDER_IMAGE: "$CI_REGISTRY_IMAGE" PREZBUILDER_TAG: "$CI_COMMIT_REF_NAME" rules: - if: $CI_COMMIT_TAG