From ce77bdd1ac0a2dbc6baed86474d7e239e3534422 Mon Sep 17 00:00:00 2001 From: Joey Kimsey Date: Mon, 12 Aug 2024 22:36:55 -0400 Subject: [PATCH] add gitlab pipeline --- .gitlab-ci.yml | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 .gitlab-ci.yml diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..2d1eb08 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,46 @@ +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 + 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} + - 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/ \ No newline at end of file