image: alpine:latest # Only run pipelines for pushes on branches workflow: rules: - if: $CI_COMMIT_BRANCH setup: stage: .pre tags: - docker script: - echo "ROOT_RELATIVE_NAMESPACE=${CI_PROJECT_NAMESPACE#$CI_PROJECT_ROOT_NAMESPACE} >> build.env" artifacts: reports: dotenv: build.env # We can't deploy multiple different variants of GitLab Pages sites (e.g. one # per branch), so we use this quick instead. GitLab has a special browsable URL # for job artifacts on public projects, and we can create an Environment that # points to that URL so it's easy for devs to know what the current Environment # URL for their branch is. .deploy: stage: deploy tags: - docker variables: PROJECT_SUB_NAMESPACE: / script: - sed -i "s/%%BRANCH%%/$CI_COMMIT_BRANCH/g" src/index.html - mv src public - echo $SHELL - echo $PROJECT_SUB_NAMESPACE - echo $ROOT_RELATIVE_NAMESPACE - echo $CI_ENVIRONMENT_URL - printenv artifacts: paths: - public/ # Deploy a review environment for any push to a branch that is not the default # branch review-sub: extends: .deploy rules: - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH environment: name: "review-sub $CI_COMMIT_BRANCH" url: "https://${CI_PROJECT_ROOT_NAMESPACE}.${CI_PAGES_DOMAIN}/-${PROJECT_SUB_NAMESPACE}${CI_PROJECT_NAME}/-/jobs/$CI_JOB_ID/artifacts/public/index.html" review-rel: extends: .deploy rules: - if: $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH environment: name: "review-rel $CI_COMMIT_BRANCH" url: "https://${CI_PROJECT_ROOT_NAMESPACE}.${CI_PAGES_DOMAIN}/-${ROOT_RELATIVE_NAMESPACE}/${CI_PROJECT_NAME}/-/jobs/$CI_JOB_ID/artifacts/public/index.html" # Deploy to GitLab Pages for pushes on the default branch pages: extends: .deploy rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH # vi: set ts=2 sw=2 et ft=yaml: