From 0525ab6b25bc0b14c2689632c4fbb523b676d02d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Minelli?= <michael@minelli.me> Date: Wed, 15 Nov 2023 16:35:16 +0100 Subject: [PATCH] CI/CD => Add test release --- AssignmentChecker/.gitlab-ci/00_vars.yml | 5 +++++ AssignmentChecker/.gitlab-ci/01_functions.yml | 21 ++++++++++++++----- AssignmentChecker/.gitlab-ci/03_stages.yml | 5 ++++- AssignmentChecker/.gitlab-ci/05_stageTest.yml | 2 +- .../.gitlab-ci/06_stageBuild.yml | 2 +- .../.gitlab-ci/09_stageRelease.yml | 2 +- 6 files changed, 28 insertions(+), 9 deletions(-) diff --git a/AssignmentChecker/.gitlab-ci/00_vars.yml b/AssignmentChecker/.gitlab-ci/00_vars.yml index 0af94a7..e54032a 100644 --- a/AssignmentChecker/.gitlab-ci/00_vars.yml +++ b/AssignmentChecker/.gitlab-ci/00_vars.yml @@ -6,9 +6,14 @@ variables: DOCKER_TLS_CERTDIR: DOCKER_DRIVER: overlay2 + DOCKER_REGISTRY: docker.io + DOCKER_REGISTRY_USER: dojohesso + DOCKER_REGISTRY_IMAGE: dojohesso/dojo_assignment_checker + PROJECT_NAME: DojoAssignmentChecker VERSION_DEV_SUFFIX: '-dev' + VERSION_TEST_SUFFIX: '-test' GITLAB_API_PROJECT_URL: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID} diff --git a/AssignmentChecker/.gitlab-ci/01_functions.yml b/AssignmentChecker/.gitlab-ci/01_functions.yml index f0675a5..fc18fd1 100644 --- a/AssignmentChecker/.gitlab-ci/01_functions.yml +++ b/AssignmentChecker/.gitlab-ci/01_functions.yml @@ -1,7 +1,19 @@ +.get_vars: + script: + - IS_DEV=$([[ $CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH && $CI_COMMIT_BRANCH != "test" ]] && echo true || echo false) + - IS_TEST=$([[ $CI_COMMIT_BRANCH == "test" ]] && echo true || echo false) + - | + if [[ $IS_TEST == true ]]; then + DOCKER_REGISTRY_USER="dojohessotest" + DOCKER_REGISTRY_IMAGE="dojohesso/dojo-test_assignment_checker" + DOCKER_REGISTRY_PASSWORD=$DOCKER_TEST_REGISTRY_PASSWORD + DOTENV_PROD_KEY=$DOTENV_TEST_KEY + fi + + .get_version: script: - - IS_DEV=$([[ $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH ]] && echo false || echo true) - - VERSION=$(jq -r .version $PROJECT_FOLDER/package.json)$([[ $IS_DEV == true ]] && echo $VERSION_DEV_SUFFIX || echo '') + - VERSION=$(jq -r .version $PROJECT_FOLDER/package.json)$([[ $IS_TEST == true ]] && echo $VERSION_TEST_SUFFIX || echo '' )$([[ $IS_DEV == true ]] && echo $VERSION_DEV_SUFFIX || echo '') .get_packages_url: @@ -21,7 +33,7 @@ # Init docker buildx - | - if [ $CI_COMMIT_REF_PROTECTED == "true" ]; then + if [[ $CI_COMMIT_REF_PROTECTED == "true" || $IS_TEST == true ]]; then docker login -u $DOCKER_REGISTRY_USER -p $DOCKER_REGISTRY_PASSWORD $DOCKER_REGISTRY fi - docker buildx create --use @@ -41,12 +53,11 @@ - cd $PROJECT_FOLDER - sed -i -r "s/\{\{VERSION\}\}/${VERSION}/g" src/app.ts - | - if [ $CI_COMMIT_REF_PROTECTED == "true" ]; then + if [[ $CI_COMMIT_REF_PROTECTED == "true" || $IS_TEST == true ]]; then echo "Decrypt production env vars" sed -i -r "s/(DOTENV_KEY[ ]*:[ ]*[\'\"\`])[^'\"\`]*([\'\"\`])([ ]*\,)?//g" src/app.ts sed -i -r "s/,[\ \n]*\}/\}/g" src/app.ts npx dotenv-vault local decrypt "${DOTENV_PROD_KEY}" > .env - fi - cd .. diff --git a/AssignmentChecker/.gitlab-ci/03_stages.yml b/AssignmentChecker/.gitlab-ci/03_stages.yml index 198b85a..a996eca 100644 --- a/AssignmentChecker/.gitlab-ci/03_stages.yml +++ b/AssignmentChecker/.gitlab-ci/03_stages.yml @@ -4,4 +4,7 @@ stages: - build - clean - upload - - release \ No newline at end of file + - release + +before_script: + - !reference [ .get_vars, script ] \ No newline at end of file diff --git a/AssignmentChecker/.gitlab-ci/05_stageTest.yml b/AssignmentChecker/.gitlab-ci/05_stageTest.yml index a1b5642..ccb013b 100644 --- a/AssignmentChecker/.gitlab-ci/05_stageTest.yml +++ b/AssignmentChecker/.gitlab-ci/05_stageTest.yml @@ -9,4 +9,4 @@ test:build: script: - !reference [ .build_script, script ] rules: - - if: '$CI_COMMIT_TAG =~ "/^$/" && $CI_COMMIT_REF_PROTECTED != "true"' \ No newline at end of file + - if: '$CI_COMMIT_TAG =~ "/^$/" && $CI_COMMIT_REF_PROTECTED != "true" && $CI_COMMIT_BRANCH != "test"' \ No newline at end of file diff --git a/AssignmentChecker/.gitlab-ci/06_stageBuild.yml b/AssignmentChecker/.gitlab-ci/06_stageBuild.yml index e2acdd1..a0c6ca4 100644 --- a/AssignmentChecker/.gitlab-ci/06_stageBuild.yml +++ b/AssignmentChecker/.gitlab-ci/06_stageBuild.yml @@ -12,4 +12,4 @@ build:version: # Here docker buildx can use cached images created in previous step - docker buildx build --platform $DOCKER_PLATFORMS --file $DOCKERFILE --push --tag $CONTAINER_IMAGE . rules: - - if: '$CI_COMMIT_REF_PROTECTED == "true"' \ No newline at end of file + - if: '$CI_COMMIT_REF_PROTECTED == "true" || $CI_COMMIT_BRANCH == "test"' \ No newline at end of file diff --git a/AssignmentChecker/.gitlab-ci/09_stageRelease.yml b/AssignmentChecker/.gitlab-ci/09_stageRelease.yml index 325d173..ad039e9 100644 --- a/AssignmentChecker/.gitlab-ci/09_stageRelease.yml +++ b/AssignmentChecker/.gitlab-ci/09_stageRelease.yml @@ -12,7 +12,7 @@ release:dockerhub:latest: # Push latest tag - docker buildx imagetools create $CONTAINER_IMAGE --tag $DOCKER_REGISTRY_IMAGE:latest rules: - - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH' + - if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH || $CI_COMMIT_BRANCH == "test"' release:wiki: -- GitLab