Files
thetempusproject/gitlab/update_PHP_deps.yml
Joey Kimsey 14bc0c1e64 bugfixes
2024-08-12 22:08:54 -04:00

47 lines
2.5 KiB
YAML

.update_PHP_deps:
variables:
TIMEZONE: "Europe/Amsterdam" # For the system in general
DATE_TIMEZONE: ${TIMEZONE} # For PHP
GIT_DEPTH: 1
GITLAB_API_URL: ${CI_API_V4_URL}
TARGET_BRANCH: ${CI_COMMIT_REF_NAME} # This is the branch chosen in the `Pipeline Schedule`
TARGET_REMOTE: "https://${GITLAB_USERNAME}:${GITLAB_ACCESS_TOKEN}@${CI_SERVER_HOST}/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}.git"
# These could/should be overridden in an extending job:
UPDATE_BRANCH_PREFIX: "update_PHP_deps_" # Used for the update branch name, it will be followed by the datetime
GIT_USER: "" # Used for the update commit
GIT_EMAIL: "" # Used for the update commit
GITLAB_USERNAME: "" # Used for pushing the new branch and opening the MR
GITLAB_ACCESS_TOKEN: "" # Used for pushing the new branch and opening the MR
MERGE_IF_SUCCESSFUL: "false" # Set to true, to merge automatically if the pipeline succeeds
SECONDS_BETWEEN_POOLING: 10 # Nbr of seconds between checking if the MR pipeline is successful, so then it will merge
JOB_GIT_FLAGS: ""
JOB_CURL_FLAGS: ""
JOB_COMPOSER_FLAGS: ""
interruptible: true # allows to stop the job if a newer pipeline starts, saving resources and allowing new jobs to start because job concurrency is limited
stage: "update_PHP_deps"
rules:
- if: '$SCHEDULED_PIPELINE == $CI_JOB_NAME'
script: # `git`, `jq` and `curl` are needed, so if they are not already installed, they should be installed in the `before_script` of the extending job
- git ${JOB_GIT_FLAGS} fetch origin ${TARGET_BRANCH}
- git ${JOB_GIT_FLAGS} checkout ${TARGET_BRANCH}
- export DATE_TIME="$(date '+%Y%m%d%H%M%S')"
- export MR_BRANCH="${UPDATE_BRANCH_PREFIX}${DATE_TIME}"
- git ${JOB_GIT_FLAGS} checkout -b "${MR_BRANCH}"
- composer update ${JOB_COMPOSER_FLAGS}
- if [ "$(git diff)" == "" ]; then echo "No updates needed!"; exit 0; fi
- export TITLE="Update PHP dependencies [${DATE_TIME}]"
- git ${JOB_GIT_FLAGS} commit -a -m "${TITLE}"
- git ${JOB_GIT_FLAGS} push "${TARGET_REMOTE}" "${MR_BRANCH}"
- |
vendor/hgraca/ci-cd-composer-update/src/GitLab/auto_merge_mr.sh \
MERGE_IF_SUCCESSFUL="${MERGE_IF_SUCCESSFUL}" \
MR_BRANCH="${MR_BRANCH}" \
MR_TITLE="\"${TITLE}\"" \
TARGET_BRANCH="${TARGET_BRANCH}" \
ACCESS_TOKEN="${GITLAB_ACCESS_TOKEN}" \
SECONDS_BETWEEN_POOLING="${SECONDS_BETWEEN_POOLING}" \
GITLAB_API="${GITLAB_API_URL}" \
CURL_FLAGS="${JOB_CURL_FLAGS}"