ci: publish to foundry automatically

This commit is contained in:
Johannes Loher 2021-09-17 19:46:36 +02:00
parent 773af35fa9
commit f36c7f52b7
3 changed files with 28 additions and 4 deletions

View file

@ -8,8 +8,9 @@ image: node:lts
stages: stages:
- test - test
- build - build
- publish - prepare-release
- release - release
- publish
cache: &global_cache cache: &global_cache
paths: paths:
@ -61,8 +62,8 @@ build:
expire_in: 1 week expire_in: 1 week
publish-artifacts: publish-artifacts:
stage: prepare-release
image: alpine:latest image: alpine:latest
stage: publish
before_script: before_script:
- apk update - apk update
- apk add zip curl - apk add zip curl
@ -70,12 +71,11 @@ publish-artifacts:
zip -r ds4.zip ds4/* zip -r ds4.zip ds4/*
curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ds4.zip "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/ds4/$CI_COMMIT_TAG/ds4.zip" curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ds4.zip "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/ds4/$CI_COMMIT_TAG/ds4.zip"
curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ds4/system.json "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/ds4/$CI_COMMIT_TAG/system.json" curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ds4/system.json "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/ds4/$CI_COMMIT_TAG/system.json"
curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ds4/system.json "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/ds4/latest/system.json"
rules: rules:
- if: '$CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+$/' - if: '$CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+$/'
changelog: changelog:
stage: publish stage: prepare-release
before_script: before_script:
- yarn install --immutable - yarn install --immutable
script: script:
@ -150,3 +150,24 @@ release:
url: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/ds4/$CI_COMMIT_TAG/system.json" url: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/ds4/$CI_COMMIT_TAG/system.json"
filepath: /system.json filepath: /system.json
link_type: other link_type: other
publish-latest-manifest:
stage: publish
image: alpine:latest
before_script:
- apk update
- apk add zip curl
script: |
curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file ds4/system.json "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/ds4/latest/system.json"
rules:
- if: '$CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+$/'
publish-to-foundry-admin:
stage: publish
image: johannesloher/foundry-publish
variables:
FVTT_MANIFEST_PATH: ./src/system.json
FVTT_MANIFEST_URL: ${CI_PROJECT_URL}/-/releases/${CI_COMMIT_TAG}/downloads/system.json
script: foundry-publish
rules:
- if: '$CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+$/'

View file

@ -24,6 +24,7 @@ const stylesExtension = ".scss";
const sourceFileExtension = ".ts"; const sourceFileExtension = ".ts";
const staticFiles = ["assets", "fonts", "lang", "packs", "templates", "system.json", "template.json"]; const staticFiles = ["assets", "fonts", "lang", "packs", "templates", "system.json", "template.json"];
const getDownloadURL = (version) => `https://git.f3l.de/dungeonslayers/ds4/-/releases/${version}/downloads/ds4.zip`; const getDownloadURL = (version) => `https://git.f3l.de/dungeonslayers/ds4/-/releases/${version}/downloads/ds4.zip`;
const getChangelogURL = (version) => `https://git.f3l.de/dungeonslayers/ds4/-/releases/${version}`;
/********************/ /********************/
/* BUILD */ /* BUILD */
@ -210,6 +211,7 @@ function bumpVersion(cb) {
manifest.file.version = targetVersion; manifest.file.version = targetVersion;
manifest.file.download = getDownloadURL(targetVersion); manifest.file.download = getDownloadURL(targetVersion);
manifest.file.changelog = getChangelogURL(targetVersion);
fs.writeJSONSync(path.join(sourceDirectory, manifest.name), manifest.file, { spaces: 4 }); fs.writeJSONSync(path.join(sourceDirectory, manifest.name), manifest.file, { spaces: 4 });
return cb(); return cb();

View file

@ -93,6 +93,7 @@
"url": "https://git.f3l.de/dungeonslayers/ds4", "url": "https://git.f3l.de/dungeonslayers/ds4",
"manifest": "https://git.f3l.de/api/v4/projects/dungeonslayers%2Fds4/packages/generic/ds4/latest/system.json", "manifest": "https://git.f3l.de/api/v4/projects/dungeonslayers%2Fds4/packages/generic/ds4/latest/system.json",
"download": "https://git.f3l.de/dungeonslayers/ds4/-/releases/1.4.3/downloads/ds4.zip", "download": "https://git.f3l.de/dungeonslayers/ds4/-/releases/1.4.3/downloads/ds4.zip",
"changelog": "https://git.f3l.de/dungeonslayers/ds4/-/releases/1.4.3",
"license": "https://git.f3l.de/dungeonslayers/ds4#licensing", "license": "https://git.f3l.de/dungeonslayers/ds4#licensing",
"initiative": "@combatValues.initiative.total", "initiative": "@combatValues.initiative.total",
"manifestPlusVersion": "1.0.0", "manifestPlusVersion": "1.0.0",