diff --git a/ExerciseChecker/.env.vault b/ExerciseChecker/.env.vault index 586a52eebe627a6a2bfbeb3343ccd928cba1599b..778640b68e2a672e519a3c195010408bea64e26c 100644 --- a/ExerciseChecker/.env.vault +++ b/ExerciseChecker/.env.vault @@ -4,8 +4,11 @@ #/--------------------------------------------------/ # development -DOTENV_VAULT_DEVELOPMENT="Au1M8CnhJUGXCLf5E8mKtiOMbDsfBjJv0XOQqHUHooo2R+EaGhcAtrQb6SbgC8DNZE0yTbQob7QpapvLENGyXlrfrM6MPHAeVMJbV9w0EmAvvaKPK3Ri5EOENVPT+IF7L34T+5Tzd5VNMSaVntIYKt7rjyOVMbmr72mtUnyw1ZFCiKPSRUiYlEIfuxgvUZ2hB0GVh0XnUv+yXUAO8GLbbg45xGWYQUu+7SBEmnC9xOVuW0jTgluroTqu8GqWwK3Kiq87h13WPCVewVxWPtPIphdOxCxF8ockXvJ4oDgnMjiCKOYihxj1e25r83kLPpwCguOQr4/PFFKF20AfdNSa9cAZjMrWe5BIgpDCGOC9/q08OzGQfwR+KOQF1+aHWhjwvlA1+M4wuCH5ZSN8jOSsaPrMcEMeF/nHpU/3sGnGxcMo2zAjcPXwgbFqFEuAZyNz1rOJPMyv335p4ZXkpBsnkUy8BQ3sZDnybx+dZETvOYH2/17aNGGGN+eS9A+VWGegqeD1JRYdP6d+hWDWuEgSWDpmcHF4PW9R8xQxZZavhj+nposY+Evcmp1/qnYeERbavVyXh2L49fJfZzy/0rZzcgrMvrN3yOaKtjf5kmvZmHUNi4Y9WcebZXokcAHYrPPvWNq5yXtZVvVAxvLpLTi1DMcT7FqnAVYaqg4DxwIZ6Ny2kEssloi/bvNp0CidCcCovMh4HTjrRWp7IUv4YA9FekCQuf5dk+MZYf9n57Q6AOsI0YllzG5S/FfklhPkhOP7Twqy0LHcBHMjW79gpC1q2ZxM+iHIJVsZZ0LMduNvjLvNWe1c77lIH4eKDsD5Ocz+vECDcl7FFhSYEDHmN2rAJzL72+2IehPGVuHo/AMpyk9VCFk4viVgZNv+Bj15JC6/ioMPTZUCAQ1TD37am70gwVHCfLqfPK+W81MbXOCtuX8U/OStjSOGs9Y+0MF/My2v3XhZLer3Z4OTHAxFBd0B4tT4CxixYuNuD1QBxB4FjTUrbKbsZskMFd+75T9aGCaLsDfWzKrgWgElp6IrXLg4uvg16rIWMOL13YE+3NYYucEE1ZdPW+ZbAr1h8SCdZTXHEdgRQACEyqCiyJs2Xpy01hU59hMto+M8sA935xhAePOPDZ7jD4BqWOtQFP2+evXmsvvlf0lU7ANUT7QIYJKKwGA4rSpP7A==" +DOTENV_VAULT_DEVELOPMENT="5g8bGHO2gv3YgdpmW5PvpWORmnu6pppW99g16TX37S81eA4Dnl0CfI0ljVAkDQ45u6lUUUFZEGfFE2x9Lgg+zENxfkVvZAkzFj+0rRKaxipqSj97taT/tVJbXq3M5cmlVwQNP9AKJMLF6/+r/+MPdhkGHU/yM/5/ycmZZoPqfHAmt6KRoTyRMBPH3/kR/7PK5lRpxf4iLSewOD5tBz60nI3GF61mpRFhIloTMsnaab65wERGwA32GS6JKU3RRaQVyyLi/d2kUfFTrq3HN7d37ZN0iNqPv556/ZNs9vmHfgjlNR9SYytzVgyVLKzRlvUpp1mz4tDDpA3OgqV5nymwQ8uSKXuvfhVnh5ac4Nf+v6xcgukt6ps2VEU5VR/qn0nwBX1zWR+K0d/lZxuKtQxVAwUq3Qhwfd8xgmm9iDmW9CqcgXp2SOsRnUaWmLcqgrlfPEJle/EVBDDL/OgzVqky/ZU0nZSJf5W9KAHGXm+CbXX7c7HljMACQdU64wvoI4CNhZ/SJvbdjSBuK45Y08FIv0G7hg52+7tA/qx/p8iST6a4Glqtwvh1TOt8ezEM0UATVy+26EnK44WRku7Xv1ZuLAyHEfmLVxsIeXXzyIHft8Iy3A1Lf4Hm4jcNaYap0DvWPREMTwGXb7FkgTSpdUfYCB2ctdl1Ndva7NDWQwuIC38/+fn5JouB6jyHRB6SfLl/YIz9NeNGPSHRofO46qI1HX2LTZ312ns3wv/8+gOsRmgwBtKuqZ2OqvQYqEnc+372n3MdkRTVIPM+QjvEAkInVtIZY9cWT1aSMFfXEyekDAVxxVKrlzYu1cogwbdMleeTz9XU0qzsghp6ftwox79aStcjCcJHiMTOuz+HWm6MVq0lFwsDvZQVSCYgjkoZBUWvS54c6zcumkbBJF5szyOJrVsiU8QCq47zaQ1O+WIKq1QFhgZm6W2vq7sc/lMPH/gDV2U5O3NpVA0NOo3OBRezkmeX3R7ElVmvHYZxnTtTcepep+5XJkdzrDVuSJWdVM8MWzh16YiefFYD5gxWG6tp8QVM+BXLS/5ErBpKc+40ReBGAL+9spiBxAAgwog4WkKt2jklOCKqQWa3dTcKCqi+g5TwvpOGLmgNg9wg2T5ZR5+W+U4A8bKxSbUdFjYlv7Jxje2ipmbfI3o515xFEiFYc0gPgGSBqg==" # production -DOTENV_VAULT_PRODUCTION="UYGmmTiLq+yxMucNPc82nYxyvSfH9PMEVF91hN7qcR4KqaJtKIiiUXOwln+sEYf67Ga/8qSdLg67r5oka07sG0DWVMuWZjUq3RCPscFDZkILxcfg2C29o4gKcg6Kp4xDsFHA25I1Gu/6TZML6V5kk59a31TUDY3mA4AjvFANVh7bm90hWkKpa57YcIO6guH2RsDeuAYQEQt0m3o4zT1/QA7+f844Z7szCNa0vQ/U3h7mL16nqLDYzokWE6euIU9BYFMNL+H54odF8wGOnESMq032FYRbsN4nfeA2CvNclkIQnz3zn1zVGTQLNE/kDqTJOvrDA6tc6InM5ow1EoD6/8Do/Z/knB6Y0fo9BDDrsD0NTWFT0u/ukoURG8Eja9kw011S+bQiT3K3L+lpVL6Sy2Z4vK7qicg90BoejAdb9xvQ80zqqe7+jolczJeD+QeGSg1u2l7G0RAbuMiNKS4Rt3imTm3jYcYsE+YEUcDIciHuTtb9a4agZve4JsaQgu5+miLZWsNkPlCcD24L2d8M8rrxphjhsnFgRVqKXX77ec8d/SNt6NpS3DHgmEn3YQBdu1lkijLCVFXLJf0PlFSIRhaoSh/UBr+zcrfWURsZeFpOg5/Ssah2aocZzHJaddHrcWO6iXCEozsiLWeAZf0sxh9qDkcopaQQv7BeTdHMyGBwyDqWv1lbmNzOfXXRQojJRrGt+0QU4oGVGqLXHxoW9ruhmHTry+Vnr5jOjUchaIhrLOEg8GFPJ5PLSugoNpZ24IRrjA==" +DOTENV_VAULT_PRODUCTION="7aZnWWflHA4gs5ZZHDpwkeHeKvDMDReEkKFaaVknWI1g7V3mBztxc+26BlfLvAhQxNPRTt5Rkqybf6g4B8lvy0sTlR3qQoM4AYXiNZe4L/GGeefozJnGAd5hUBLO9Chqu2C22cU7Xe4dHcHV08Fxnu8aKL9iTwR5a3PvrNlpIeNIIyoBMLDDKpdhhj7ru4Jv/bsj5Jr7+yddkUg5538+gVnFxT34cOoWAEgibXRpAbEdZxeHn1AwoIAz7ToRbDllcwc9QPhpRHLIg+QsubLZ8eLCrzeUmMWJA/VWvOvH7ZowlbewHpc/W5MyIoiUlXztrroTe2MDYySyYgCK2z8aDpvEJ5wm0WPAzz+UTmsIOJ4QD86kKuXrj8BEVkxX6buNbDcl2yJ/1laobsjSLQHjfGReElP241JKhH4wgkcbsEtAgCfX9VzJ+aqHErIVlXlQW4uLHiTNjo3pHJAfvMJ3rzq/OgdX/4s/5eebQieNbvPUKznJyhYzsSmrj2OUL/A9Cl0pz8NvD6Vw0/ujC7hI36HlZHLI09/4dBKzlUS2oRhSnSB0SIwh0TY0I3jHz+PSqv2cUQcbU19ZcT0IvW7jhTb3gWNzYb839OEjs8VYM2sTSOezKswJpu5sV4NqUONwHhvGkJsAHaFZ1IPpW5kyUCHDkjoD9zFiVo5676XLGjt+fhb+XGXoFDnNpVc1OCGCrDsKMtoCRRpC3eOGrE9bvX6oF3BEhhheUefRYG649PjZNbJNvD5wrrprzahhjQvq6bA0rA==" + +# test +DOTENV_VAULT_TEST="slPyHq6uj365knunmDQbHELis6HUmi/5/n2WG6GiRVskNBYYFP1Hh7vMo52K23KHw2DV3cVM3wlDM4OKSCErqN8NOUukB0zIWhjOnio7U6eXzcsZcK0i2cCyH292zfnrKdWjzxecLgI+/nPX8gb5/0iQTr/c1dhLf3t24jfQZO8P4LGBYdvetrgnaMedRy/k6dDzO4Yxl33Oa9sQCwsL0OtUkfF9k6pE6Z89j/GiO3RRGOiM1XrMkUk/XojMYdXQkRpRPm5YW8i9tEpwPiH8QP/cqHfSz8IL3BKBVOeSoYaJb7NbvF4yhxt5d990Ugu1geYISrrLXhw2z4g2oNRS8YK3nraaXJtlMqTYUZJMoAGBtqhwrdfn33VqQJDbwmtaQsDl8lQ94kJvODeThxQdniS90sUe6WYVsUKdKj48I+JiSiTjJfYS29GOhKvPsZz8CszNiVu5ib6IiZgEFtvl6s+/I143HaahQLtGv6ZynYk7bUuRGd0jaiZR+J2o/rzPMeRCdEOxpByEAs302zZjVnxV582IinG1jRGvu27/BqDyn1j5p3jIJNL9AX5ptuoi0cC3kuJMzALWa51MbD8UOv5Tq68lxDnuG1k77f0QaLsrzdzbJwTpqmJPN3MFYzTQWyqBLUSA32eW0bablKR+YXcvfR6/3ikRofDE10bJYVqX5Ene1DaBXMZwQpaesnto46w+QBL0GRqkvAzQcdtWkl2ABuqRYBB4sWnZHMpbopspwsbV/EdwlcXdwNXHQf2z4m5k8f4Uh6toSwzn" diff --git a/ExerciseChecker/.gitlab-ci/00_vars.yml b/ExerciseChecker/.gitlab-ci/00_vars.yml index 46cb27b058b7ab53199e24bc6288172dcdf94417..1fcea071b2c22d5d88c35c4a42f7515a42949095 100644 --- a/ExerciseChecker/.gitlab-ci/00_vars.yml +++ b/ExerciseChecker/.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_exercise_checker + PROJECT_NAME: DojoExerciseChecker VERSION_DEV_SUFFIX: '-dev' + VERSION_TEST_SUFFIX: '-test' GITLAB_API_PROJECT_URL: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID} diff --git a/ExerciseChecker/.gitlab-ci/01_functions.yml b/ExerciseChecker/.gitlab-ci/01_functions.yml index f0675a514e20658a7d87932f65073487c89cc028..05fe3aec03b9723a1d71575ff6d6412cf57809c5 100644 --- a/ExerciseChecker/.gitlab-ci/01_functions.yml +++ b/ExerciseChecker/.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_exercise_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,15 +53,20 @@ - 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 .. + # Rename executable for test + - | + if [[ $IS_TEST == true ]]; then + sed -i -r "s%dojo_exercise_checker%dojo-test_exercise_checker%g" $DOCKERFILE + fi + # Need to build for each platform separately because of multi-stage builds (docker buildx don't use cache same way as docker build) - > platform_array=$(echo $DOCKER_PLATFORMS | tr "," "\n"); diff --git a/ExerciseChecker/.gitlab-ci/03_stages.yml b/ExerciseChecker/.gitlab-ci/03_stages.yml index 198b85a3eeb84675229f3459f1457de2b9c2f2f9..a996ecac4ea23db0640d1c6767b1780748aeccbe 100644 --- a/ExerciseChecker/.gitlab-ci/03_stages.yml +++ b/ExerciseChecker/.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/ExerciseChecker/.gitlab-ci/04_stageCodeQuality.yml b/ExerciseChecker/.gitlab-ci/04_stageCodeQuality.yml index 9fda59d835ec0c91e23548db55a43a1df8d6ab1b..48f2394902f9143be7eee5ca5706ffbd65f3355b 100644 --- a/ExerciseChecker/.gitlab-ci/04_stageCodeQuality.yml +++ b/ExerciseChecker/.gitlab-ci/04_stageCodeQuality.yml @@ -8,3 +8,5 @@ code_quality:lint: - npm install - npm run lint + rules: + - if: '$CI_COMMIT_TAG =~ "/^$/"' diff --git a/ExerciseChecker/.gitlab-ci/05_stageTest.yml b/ExerciseChecker/.gitlab-ci/05_stageTest.yml index a1b564295624124e216ae7bba18ac6950590eccb..ccb013bcc6113315e83da6b2190787d73ee11903 100644 --- a/ExerciseChecker/.gitlab-ci/05_stageTest.yml +++ b/ExerciseChecker/.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/ExerciseChecker/.gitlab-ci/06_stageBuild.yml b/ExerciseChecker/.gitlab-ci/06_stageBuild.yml index e2acdd1042c77d84b45e63e3b8b2cdaf217d92bc..a0c6ca411fd86c59aa49fd601563bd262e3ef89f 100644 --- a/ExerciseChecker/.gitlab-ci/06_stageBuild.yml +++ b/ExerciseChecker/.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/ExerciseChecker/.gitlab-ci/09_stageRelease.yml b/ExerciseChecker/.gitlab-ci/09_stageRelease.yml index 325d173cd88c4336e573d1dd33f6ffbe7745c653..ad039e9aa41609db7d147f941fdf6bd73aa3a41b 100644 --- a/ExerciseChecker/.gitlab-ci/09_stageRelease.yml +++ b/ExerciseChecker/.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: