diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 16b36303ddd62bc25d28c52be6b206a9773ea56b..011eef3a4c7dcf8cc43b221239ab01c9a4e1acbf 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -5,6 +5,16 @@ 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 @@ -14,12 +24,13 @@ workflow: stage: deploy tags: - docker -# variables: -# ROOT_RELATIVE_NAMESPACE: "${CI_PROJECT_NAMESPACE#$CI_PROJECT_ROOT_NAMESPACE}" + 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 @@ -29,12 +40,20 @@ workflow: # Deploy a review environment for any push to a branch that is not the default # branch -review: +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 $CI_COMMIT_BRANCH" + 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