2024-09-22 01:45:32 +02:00
|
|
|
stages:
|
|
|
|
- compile
|
|
|
|
- release
|
|
|
|
|
|
|
|
# Compile Job (runs on every commit)
|
|
|
|
compile:
|
|
|
|
stage: compile
|
2024-09-22 01:54:53 +02:00
|
|
|
image: ubuntu:latest
|
|
|
|
before_script:
|
2024-09-23 17:58:07 +02:00
|
|
|
# Install Node.js v21.x manually
|
2024-09-22 01:55:02 +02:00
|
|
|
- apt-get update && apt-get install -y curl
|
2024-09-22 01:54:53 +02:00
|
|
|
- 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
|
2024-09-22 01:45:32 +02:00
|
|
|
- npm install --global gulp-cli
|
2024-09-22 01:54:53 +02:00
|
|
|
- gulp --version # Verify Gulp is installed
|
|
|
|
script:
|
2024-09-22 01:45:32 +02:00
|
|
|
- npm install
|
|
|
|
- gulp compile
|
|
|
|
only:
|
|
|
|
- branches
|
2024-09-23 17:58:07 +02:00
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- kidsonbrooms.zip
|
|
|
|
expire_in: never
|
2024-09-22 01:45:32 +02:00
|
|
|
|
|
|
|
# Release Job (manually triggered with version)
|
|
|
|
release:
|
|
|
|
stage: release
|
2024-09-23 17:48:33 +02:00
|
|
|
image: ubuntu:latest
|
2024-09-22 01:45:32 +02:00
|
|
|
before_script:
|
2024-09-23 17:58:07 +02:00
|
|
|
# Install necessary tools
|
|
|
|
- apt-get update && apt-get install -y curl jq git
|
|
|
|
# Install Node.js v21.x manually
|
2024-09-22 01:54:53 +02:00
|
|
|
- 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
|
2024-09-22 01:45:32 +02:00
|
|
|
- npm install --global gulp-cli
|
2024-09-22 01:54:53 +02:00
|
|
|
- gulp --version # Verify Gulp is installed
|
2024-09-22 01:45:32 +02:00
|
|
|
script:
|
|
|
|
# Check if VERSION is provided
|
2024-09-23 17:58:07 +02:00
|
|
|
- |
|
|
|
|
if [ -z "$VERSION" ]; then
|
|
|
|
echo "Error: VERSION variable is required."
|
|
|
|
exit 1
|
|
|
|
fi
|
2024-09-22 01:45:32 +02:00
|
|
|
|
2024-09-23 17:58:07 +02:00
|
|
|
# Install dependencies and run Gulp release task
|
2024-09-22 16:56:10 +02:00
|
|
|
- npm install
|
2024-09-22 01:45:32 +02:00
|
|
|
- gulp release
|
|
|
|
|
2024-09-23 17:58:07 +02:00
|
|
|
# Update system.json with the release URL
|
2024-09-22 01:48:59 +02:00
|
|
|
- |
|
2024-09-23 17:58:07 +02:00
|
|
|
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"
|
2024-09-22 01:45:32 +02:00
|
|
|
- git add system.json
|
|
|
|
- git commit -m "Update system.json with release URL"
|
2024-09-23 18:00:47 +02:00
|
|
|
- git push "https://$CI_COMMITTER_USER_AND_TOKEN@gitlab.com/${CI_PROJECT_NAMESPACE}/${CI_PROJECT_NAME}.git" HEAD:master
|
2024-09-22 01:45:32 +02:00
|
|
|
|
|
|
|
# Publish the release to the Foundry API
|
2024-09-22 01:48:59 +02:00
|
|
|
- |
|
|
|
|
curl -X POST https://api.foundryvtt.com/_api/packages/release_version/ \
|
2024-09-22 01:45:32 +02:00
|
|
|
-H "Authorization: $FOUNDRY_API_KEY" \
|
|
|
|
-H "Content-Type: application/json" \
|
2024-09-23 17:58:07 +02:00
|
|
|
-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\": \"\"
|
2024-09-22 01:45:32 +02:00
|
|
|
}
|
|
|
|
}
|
2024-09-23 17:58:07 +02:00
|
|
|
}"
|
2024-09-22 16:11:43 +02:00
|
|
|
only:
|
|
|
|
- master
|
2024-09-22 01:45:32 +02:00
|
|
|
when: manual
|
|
|
|
allow_failure: false
|
2024-09-23 17:58:07 +02:00
|
|
|
dependencies:
|
|
|
|
- compile
|
2024-09-22 01:45:32 +02:00
|
|
|
artifacts:
|
|
|
|
paths:
|
2024-09-22 15:57:37 +02:00
|
|
|
- kidsonbrooms.zip
|
2024-09-23 17:58:07 +02:00
|
|
|
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"
|