From 41f7aa44261237b82bdb7fa0b2004d653e871367 Mon Sep 17 00:00:00 2001 From: WinterMyst <22961076-wintermyst@users.noreply.gitlab.com> Date: Mon, 23 Sep 2024 15:58:07 +0000 Subject: [PATCH] Update .gitlab-ci.yml file --- .gitlab-ci.yml | 93 +++++++++++++++++++++++--------------------------- 1 file changed, 42 insertions(+), 51 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 280da31..e92e4ff 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,7 @@ compile: stage: compile image: ubuntu:latest before_script: - # Install Node.js v21.7.3 manually + # Install Node.js v21.x manually - apt-get update && apt-get install -y curl - curl -fsSL https://deb.nodesource.com/setup_21.x | bash - - apt-get install -y nodejs @@ -20,89 +20,80 @@ compile: - gulp compile only: - branches + artifacts: + paths: + - kidsonbrooms.zip + expire_in: never # Release Job (manually triggered with version) release: stage: release image: ubuntu:latest before_script: - # Install Node.js v21.7.3 manually - - apt-get update && apt-get install -y curl jq git openssh-client + # Install necessary tools + - apt-get update && apt-get install -y curl jq git + # Install Node.js v21.x manually - curl -fsSL https://deb.nodesource.com/setup_21.x | bash - - apt-get install -y nodejs - node -v # Verify the correct Node.js version # Install Gulp globally - npm install --global gulp-cli - gulp --version # Verify Gulp is installed - # Set Git configuration - - git config --global user.name "GitLab CI" - - git config --global user.email "ci@gitlab.com" - # Use the PAT for authentication - - git remote set-url --push origin "https://$CI_COMMITTER_USER_AND_TOKEN@gitlab.com/wintermyst/kidsonbrooms.git" - - git fetch --unshallow # Ensure we fetch all history for the branch (not a shallow clone) - - git checkout master # Switch to the master branch - - git branch --set-upstream-to=origin/master master # Set the upstream to the master branch script: # Check if VERSION is provided - - | - if [ -z "$VERSION" ]; then echo "Error: VERSION variable is required." && exit 1; fi + - | + if [ -z "$VERSION" ]; then + echo "Error: VERSION variable is required." + exit 1 + fi + # Install dependencies and run Gulp release task - npm install - # Run Gulp release task (includes zipping) - gulp release - # Create a release on GitLab - - > - curl --request POST \ - --header "PRIVATE-TOKEN: ${GITLAB_PAT}" \ - --header "Content-Type: application/json" \ - --data "{ - \"name\": \"Release v$VERSION\", - \"tag_name\": \"v$VERSION\", - \"description\": \"Release v$VERSION\", - \"ref\": \"master\", - \"assets\": { - \"links\": [ - { - \"name\": \"Download kidsonbrooms.zip\", - \"url\": \"https://gitlab.com/wintermyst/kidsonbrooms/-/jobs/$CI_JOB_ID/artifacts/download\" - } - ] - } - }" "https://gitlab.com/api/v4/projects/$CI_PROJECT_ID/releases" - # Update system.json - - export RELEASE_URL=$(echo $RELEASE_RESPONSE | jq -r '.assets.links[0].url') - - # Update the system.json file with the release URL + # Update system.json with the release URL - | - sed -i "s|\"download\":.*|\"download\": \"$RELEASE_URL\",|" system.json + sed -i "s|\"download\":.*|\"download\": \"https://gitlab.com/$CI_PROJECT_NAMESPACE/$CI_PROJECT_NAME/-/releases/v$VERSION/download\",|" system.json + - git config --global user.name "GitLab CI" + - git config --global user.email "ci@gitlab.com" - git add system.json - git commit -m "Update system.json with release URL" - - git push origin master + - git push "https://oauth2:${GITLAB_PAT}@gitlab.com/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}.git" HEAD:master # Publish the release to the Foundry API - | curl -X POST https://api.foundryvtt.com/_api/packages/release_version/ \ -H "Authorization: $FOUNDRY_API_KEY" \ -H "Content-Type: application/json" \ - -d '{ - "id": "Your-Package-ID", - "release": { - "version": "'$VERSION'", - "manifest": "https://gitlab.com/wintermyst/kids-nbrooms/-/raw/master/system.json", - "notes": "https://gitlab.com/wintermyst/kidsonbrooms/releases/tag/v'$VERSION'", - "compatibility": { - "minimum": "12.331", - "verified": "12.331", - "maximum": "" + -d "{ + \"id\": \"Your-Package-ID\", + \"release\": { + \"version\": \"$VERSION\", + \"manifest\": \"https://gitlab.com/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/-/raw/master/system.json\", + \"notes\": \"https://gitlab.com/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/-/releases/v$VERSION\", + \"compatibility\": { + \"minimum\": \"12.331\", + \"verified\": \"12.331\", + \"maximum\": \"\" } } - }' + }" only: - master when: manual allow_failure: false + dependencies: + - compile artifacts: paths: - kidsonbrooms.zip - expire_in: never \ No newline at end of file + expire_in: never + release: + name: "Release v$VERSION" + tag_name: "v$VERSION" + description: "Release v$VERSION" + ref: master + assets: + links: + - name: "Download kidsonbrooms.zip" + url: "https://gitlab.com/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}/-/jobs/${CI_JOB_ID}/artifacts/raw/kidsonbrooms.zip"