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'