49 lines
2.1 KiB
YAML
49 lines
2.1 KiB
YAML
stages:
|
|
- update
|
|
|
|
variables:
|
|
TIMEZONE: "America/New_York" # 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: "DependBot" # Used for the update commit
|
|
GIT_EMAIL: "webmaster@thetempusproject.com" # Used for the update commit
|
|
GITLAB_USERNAME: "root" # Used for pushing the new branch and opening the MR
|
|
GITLAB_ACCESS_TOKEN: "glpat-PKEmivGtBfbz4DVPdhzk" # Used for pushing the new branch and opening the MR
|
|
MERGE_IF_SUCCESSFUL: "true" # 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: ""
|
|
|
|
composer_update:
|
|
stage: update
|
|
rules:
|
|
- if: '$CI_COMMIT_BRANCH == "main"'
|
|
image: composer:latest
|
|
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
|
|
script:
|
|
- git ${JOB_GIT_FLAGS} fetch origin ${TARGET_BRANCH}
|
|
- git ${JOB_GIT_FLAGS} checkout ${TARGET_BRANCH}
|
|
- git reset --hard origin/main
|
|
- 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}"
|
|
artifacts:
|
|
paths:
|
|
- vendor/
|
|
cache:
|
|
key: ${CI_COMMIT_REF_SLUG}
|
|
paths:
|
|
- vendor/ |