image: node:latest stages: - test - build - deploy .preview_job: &preview_job only: - gatsby # TODO: Change to master once merged .production_job: &production_job only: - /^release-.*$/ .build_template: &build_template stage: build dependencies: [] artifacts: paths: - public/ script: - yarn build .deploy_template: &deploy_template stage: deploy script: - yarn firebase use --token $FIREBASE_DEPLOY_KEY default - yarn firebase deploy --only hosting:$DEPLOY_ENV -m "Pipeline $CI_PIPELINE_ID, Build $CI_BUILD_ID" --non-interactive --token $FIREBASE_DEPLOY_KEY cache: paths: - node_modules/ before_script: - yarn install test-lint: stage: test script: - yarn test:lint test-unit: stage: test coverage: '/^Statements\s*:\s*([^%]+)/' script: - yarn test:unit artifacts: paths: - coverage/ build-preview: <<: *build_template <<: *preview_job variables: BANNER: preview DEPLOY_ENV: preview GA_PROPERTY: $PREVIEW_GA_PROPERTY build-production: <<: *build_template <<: *production_job variables: DEPLOY_ENV: production GA_PROPERTY: $PROD_GA_PROPERTY deploy-preview: <<: *deploy_template <<: *preview_job dependencies: - build-preview environment: name: preview url: https://preview.regexper.com variables: DEPLOY_ENV: preview deploy-production: <<: *deploy_template <<: *production_job dependencies: - build-production environment: name: production url: https://regexper.com variables: DEPLOY_ENV: production