image: node:lts-alpine include: - template: Security/Secret-Detection.gitlab-ci.yml cache: paths: - node_modules/ # Only run pipeline when scheduled or "Run pipeline" in the main branch workflow: rules: - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && ($CI_PIPELINE_SOURCE == "schedule" || $CI_PIPELINE_SOURCE == "web")' build_job: stage: build before_script: - apk update && apk add brotli curl - npm install script: - npm run build - find public -name "oisd*.txt" -type f -print0 | xargs -0 gzip -f -k -9 - find public -name "oisd*.txt" -type f -print0 | xargs -0 brotli -f -k -9 artifacts: paths: - tmp - public expire_in: 1 week pages: stage: deploy dependencies: - build_job script: - echo artifacts: paths: - public expire_in: 1 week cloudflare: stage: deploy before_script: - apk update && apk add curl script: - curl -X POST "https://api.cloudflare.com/client/v4/pages/webhooks/deploy_hooks/$CLOUDFLARE_BUILD_HOOK" rules: - if: $CLOUDFLARE_BUILD_HOOK netlify: stage: deploy dependencies: - build_job before_script: - npm install netlify-cli -g - netlify --telemetry-disable script: - netlify deploy --dir=public --prod rules: - if: $NETLIFY_SITE_ID