summaryrefslogtreecommitdiff
path: root/.gitlab/deploy.yml
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-05-22 15:48:21 +0000
committerCan Eldem <celdem@gitlab.com>2020-05-22 15:48:21 +0000
commitef80bee8d1f97830449132afd1a4514c1d9d145b (patch)
tree93a45ec7990788dcff4c1c18a29920698889e593 /.gitlab/deploy.yml
parent7e044195b5148b1b9ecbb92d88eb2e4c57a3d81b (diff)
Add functional tests to the pipeline
* Move jobs to gitlab-ci.yml files that match the stage they belong to. * Move linter job to build stage * Add functional test jobs * Reduce max size to 2 GB * Pass the current pipeline image to the downstream jobs * Replace `edge` tag with `latest` * Use $CI_DEFAULT_BRANCH instead of master * Move `.env*` files to config dir and update RELEASE instructions * Combine `tag` and `release` stages into `deploy` stage as recommended in GitLab docs * Make the `build-docker-image` job interruptible * Fix issues found in code quality report
Diffstat (limited to '.gitlab/deploy.yml')
-rw-r--r--.gitlab/deploy.yml172
1 files changed, 172 insertions, 0 deletions
diff --git a/.gitlab/deploy.yml b/.gitlab/deploy.yml
new file mode 100644
index 0000000..22c8633
--- /dev/null
+++ b/.gitlab/deploy.yml
@@ -0,0 +1,172 @@
+.docker_tag:
+ image: docker:stable
+ stage: deploy
+ tags: [gitlab-org-docker]
+ services:
+ - docker:stable-dind
+ script:
+ - docker info
+ - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
+ - export SOURCE_IMAGE=$TMP_IMAGE
+ - export TARGET_IMAGE=$CI_REGISTRY_IMAGE:${IMAGE_TAG:-$CI_JOB_NAME}
+ - |
+ if [ -z "$DOTENV" ]; then
+ docker pull $SOURCE_IMAGE
+ docker tag $SOURCE_IMAGE $TARGET_IMAGE
+ else
+ ./bin/docker-dotenv
+ fi
+ - docker push $TARGET_IMAGE
+
+latest:
+ extends: .docker_tag
+ variables:
+ IMAGE_TAG: latest
+ only:
+ - $CI_DEFAULT_BRANCH
+
+version:
+ extends: .docker_tag
+ before_script:
+ - export IMAGE_TAG=${CI_COMMIT_TAG/v/}
+ - echo "Checking that $CI_COMMIT_TAG is last in the changelog"
+ - test "$(grep '^## v' CHANGELOG.md |head -n 1)" = "## $CI_COMMIT_TAG"
+ only:
+ - tags
+ allow_failure: false
+
+.release:
+ extends: .docker_tag
+ when: manual
+ only:
+ - tags
+ after_script:
+ # Also push to registry.gitlab.com/gitlab-org/security-products/analyzers/license-finder
+ - docker login -u gitlab-ci-token -p $GITLAB_TOKEN $CI_REGISTRY
+ - docker tag $TARGET_IMAGE registry.gitlab.com/gitlab-org/security-products/analyzers/license-finder:${IMAGE_TAG:-$CI_JOB_NAME}
+ - docker push registry.gitlab.com/gitlab-org/security-products/analyzers/license-finder:${IMAGE_TAG:-$CI_JOB_NAME}
+
+major:
+ extends: .release
+ variables:
+ IMAGE_TAG: $MAJOR
+
+13-0-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.13-0-stable"
+
+12-10-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.12-10-stable"
+
+12-9-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.12-9-stable"
+
+12-8-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.12-8-stable"
+
+12-7-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.12-7-stable"
+
+12-6-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.12-6-stable"
+
+12-5-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.12-5-stable"
+
+12-4-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.12-4-stable"
+
+12-3-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.12-3-stable"
+
+12-2-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.12-2-stable"
+
+12-1-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.legacy"
+
+12-0-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.legacy"
+
+11-11-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.legacy"
+
+11-10-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.legacy"
+
+11-9-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.legacy"
+
+11-8-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.legacy"
+
+11-7-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.legacy"
+
+11-6-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.legacy"
+
+11-5-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.legacy"
+
+11-4-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.legacy"
+
+11-3-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.legacy"
+
+11-2-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.legacy"
+
+11-1-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.legacy"
+
+11-0-stable:
+ extends: .release
+ variables:
+ DOTENV: "config/.env.legacy"