diff options
Diffstat (limited to 'ping/.gitlab-ci.yml')
| -rw-r--r-- | ping/.gitlab-ci.yml | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/ping/.gitlab-ci.yml b/ping/.gitlab-ci.yml new file mode 100644 index 0000000..299a656 --- /dev/null +++ b/ping/.gitlab-ci.yml @@ -0,0 +1,92 @@ +stages: + - test + - deploy + + +.connect_to_intra_git: + image: + name: alpine/git:2.47.1 + entrypoint: [""] + environment: + name: forge-intra + url: https://intra.forge.epita.fr/epita-ing-assistants-yaka/ping-2027/root/ping-2027/ping-backend + before_script: + - test -n "$GIT_INTRA_REPO_URL" + - test -n "$GIT_INTRA_GLOBAL_URL" + - test -n "$GIT_DEPLOY_BRANCH" + - test -n "$GIT_RUNNER_NAME" + - test -n "$GIT_RUNNER_EMAIL" + + - 'command -v ssh-agent >/dev/null || apk add --no-cache openssh' + - eval $(ssh-agent -s) + + - chmod 400 "$SSH_PRIVATE_KEY" + - ssh-add "$SSH_PRIVATE_KEY" + + - mkdir -p ~/.ssh + - chmod 700 ~/.ssh + + - ssh-keyscan -v -H $GIT_INTRA_GLOBAL_URL >> ~/.ssh/known_hosts + - chmod 644 ~/.ssh/known_hosts + + - ssh -T git@"$GIT_INTRA_GLOBAL_URL" + + - git config --global user.email "$RUNNER_GIT_EMAIL" + - git config --global user.name "$RUNNER_GIT_NAME" + + - git ls-remote --exit-code -h "$GIT_INTRA_REPO_URL" || { [ $? -ne 2 ] && return 1; } + + - git remote | grep 'intra' || git remote add intra "$GIT_INTRA_REPO_URL" + - git remote update + + +compilation-job: + stage: test + image: maven:3.9.9-amazoncorretto-21-alpine + rules: + - if: $CI_PIPELINE_SOURCE == "merge_request_event" + when: always + script: + - cd ping + - mvn quarkus:build + + +push-master-state-to-intra-job: + extends: .connect_to_intra_git + stage: deploy + rules: + - if: $CI_COMMIT_BRANCH == "master" && $CI_PIPELINE_SOURCE == "push" + when: always + script: + - git log --all --oneline --graph + - git push intra HEAD:"$GIT_DEPLOY_BRANCH" + + +push-to-intra-job: + extends: .connect_to_intra_git + stage: deploy + rules: + - if: $CI_COMMIT_TAG != null + && ($CI_COMMIT_TAG =~ "/^release.*$/" + || $CI_COMMIT_TAG =~ "/^ping-backend-dementor-.*$/" + || $CI_COMMIT_TAG =~ "/^ping-backend-submission-.*$/" + || $CI_COMMIT_TAG =~ "/^ping-backend-continuous-tag-.*$/") + when: always + script: + - git push intra "$CI_COMMIT_TAG" + + +release-job: + stage: deploy + image: registry.gitlab.com/gitlab-org/release-cli:latest + rules: + - if: $CI_COMMIT_TAG != null + when: always + needs: + - job: push-to-intra-job + artifacts: false + script: + - echo "creating a new release for tag $CI_COMMIT_TAG..." + release: + tag_name: '$CI_COMMIT_TAG' + description: '$CI_COMMIT_TAG' |
