fvtt-never-stop-blowing-up/.gitlab-ci.yml

100 lines
3.0 KiB
YAML
Raw Normal View History

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 17:58:07 +02:00
- git push "https://oauth2:${GITLAB_PAT}@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"