improve pipeline
This commit is contained in:
parent
a76e07497a
commit
81eff4fcdd
4 changed files with 65 additions and 14 deletions
|
@ -8,17 +8,17 @@ image: node:lts
|
||||||
stages:
|
stages:
|
||||||
- test
|
- test
|
||||||
- build
|
- build
|
||||||
|
- publish
|
||||||
- release
|
- release
|
||||||
|
|
||||||
before_script:
|
|
||||||
- yarn install --immutable
|
|
||||||
|
|
||||||
cache: &global_cache
|
cache: &global_cache
|
||||||
paths:
|
paths:
|
||||||
- .yarn/cache
|
- .yarn/cache
|
||||||
|
|
||||||
lint:
|
lint:
|
||||||
stage: test
|
stage: test
|
||||||
|
before_script:
|
||||||
|
- yarn install --immutable
|
||||||
script:
|
script:
|
||||||
- yarn lint
|
- yarn lint
|
||||||
cache:
|
cache:
|
||||||
|
@ -26,6 +26,8 @@ lint:
|
||||||
|
|
||||||
test:
|
test:
|
||||||
stage: test
|
stage: test
|
||||||
|
before_script:
|
||||||
|
- yarn install --immutable
|
||||||
script:
|
script:
|
||||||
- yarn test:ci
|
- yarn test:ci
|
||||||
cache:
|
cache:
|
||||||
|
@ -41,12 +43,13 @@ reuse:
|
||||||
image:
|
image:
|
||||||
name: fsfe/reuse:latest
|
name: fsfe/reuse:latest
|
||||||
entrypoint: [""]
|
entrypoint: [""]
|
||||||
before_script: []
|
|
||||||
script:
|
script:
|
||||||
- reuse lint
|
- reuse lint
|
||||||
|
|
||||||
build:
|
build:
|
||||||
stage: build
|
stage: build
|
||||||
|
before_script:
|
||||||
|
- yarn install --immutable
|
||||||
script:
|
script:
|
||||||
- yarn build
|
- yarn build
|
||||||
- mv dist ds4
|
- mv dist ds4
|
||||||
|
@ -57,6 +60,20 @@ build:
|
||||||
- ds4
|
- ds4
|
||||||
expire_in: 1 week
|
expire_in: 1 week
|
||||||
|
|
||||||
|
publish-artifacts:
|
||||||
|
image: alpine:latest
|
||||||
|
stage: publish
|
||||||
|
before_script:
|
||||||
|
- apk update
|
||||||
|
- apk add zip curl
|
||||||
|
script: |
|
||||||
|
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/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:
|
||||||
|
- if: '$CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+$/'
|
||||||
|
|
||||||
.release-template: &release-template
|
.release-template: &release-template
|
||||||
stage: release
|
stage: release
|
||||||
before_script:
|
before_script:
|
||||||
|
@ -77,14 +94,12 @@ build:
|
||||||
git add package.json src/system.json
|
git add package.json src/system.json
|
||||||
git --no-pager diff
|
git --no-pager diff
|
||||||
git commit -m "release version ${RELEASE_VERSION}"
|
git commit -m "release version ${RELEASE_VERSION}"
|
||||||
git tag -f latest
|
|
||||||
git tag -f ${RELEASE_VERSION}
|
git tag -f ${RELEASE_VERSION}
|
||||||
git push origin ci-processing:${CI_BUILD_REF_NAME}
|
git push origin ci-processing:${CI_BUILD_REF_NAME} -o ci.skip
|
||||||
git push origin latest -f
|
|
||||||
git push origin ${RELEASE_VERSION}
|
git push origin ${RELEASE_VERSION}
|
||||||
only:
|
rules:
|
||||||
- master
|
- if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH"
|
||||||
when: manual
|
when: manual
|
||||||
|
|
||||||
release-patch:
|
release-patch:
|
||||||
variables:
|
variables:
|
||||||
|
@ -100,3 +115,40 @@ release-major:
|
||||||
variables:
|
variables:
|
||||||
RELEASE_TYPE: major
|
RELEASE_TYPE: major
|
||||||
<<: *release-template
|
<<: *release-template
|
||||||
|
|
||||||
|
bump-latest-tag:
|
||||||
|
stage: release
|
||||||
|
image: alpine:latest
|
||||||
|
before_script:
|
||||||
|
- apk update
|
||||||
|
- apk add git
|
||||||
|
- REPOSITORY_URL=$(echo "${CI_REPOSITORY_URL}" | sed -e "s|gitlab-ci-token:.*@|${RELEASE_TOKEN}:${RELEASE_TOKEN_SECRET}@|g")
|
||||||
|
- git remote set-url origin $REPOSITORY_URL
|
||||||
|
- git config user.name $GITLAB_USER_LOGIN
|
||||||
|
- git config user.email $GITLAB_USER_EMAIL
|
||||||
|
script: |
|
||||||
|
git tag -f latest -m "This tag is only being kept for backwards compatibility. To install the DS4 system, please use the following manifest URL instead: https://git.f3l.de/api/v4/projects/dungeonslayers%2Fds4/packages/generic/ds4/latest/system.json"
|
||||||
|
git push origin latest -f -o ci.skip
|
||||||
|
rules:
|
||||||
|
- if: '$CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+$/'
|
||||||
|
|
||||||
|
release:
|
||||||
|
stage: release
|
||||||
|
image: registry.gitlab.com/gitlab-org/release-cli:latest
|
||||||
|
script:
|
||||||
|
- echo 'release job'
|
||||||
|
rules:
|
||||||
|
- if: '$CI_COMMIT_TAG =~ /^[0-9]+\.[0-9]+\.[0-9]+$/'
|
||||||
|
release:
|
||||||
|
tag_name: $CI_COMMIT_TAG
|
||||||
|
description: "# Changelog"
|
||||||
|
assets:
|
||||||
|
links:
|
||||||
|
- name: "ds4.zip"
|
||||||
|
url: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/ds4/$CI_COMMIT_TAG/ds4.zip"
|
||||||
|
filepath: /ds4.zip
|
||||||
|
link_type: package
|
||||||
|
- name: "system.json"
|
||||||
|
url: "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/ds4/$CI_COMMIT_TAG/system.json"
|
||||||
|
filepath: /system.json
|
||||||
|
link_type: other
|
||||||
|
|
|
@ -19,7 +19,7 @@ To install and use the Dungeonslayers 4 system for Foundry Virtual Tabletop,
|
||||||
simply paste the following URL into the **Install System** dialog on the Setup
|
simply paste the following URL into the **Install System** dialog on the Setup
|
||||||
menu of the application.
|
menu of the application.
|
||||||
|
|
||||||
https://git.f3l.de/dungeonslayers/ds4/-/raw/latest/src/system.json?inline=false
|
https://git.f3l.de/api/v4/projects/dungeonslayers%2Fds4/packages/generic/ds4/latest/system.json
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
|
|
|
@ -23,8 +23,7 @@ const stylesDirectory = path.join(sourceDirectory, "scss");
|
||||||
const stylesExtension = ".scss";
|
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) =>
|
const getDownloadURL = (version) => `https://git.f3l.de/dungeonslayers/ds4/-/releases/${version}/downloads/ds4.zip`;
|
||||||
`https://git.f3l.de/dungeonslayers/ds4/-/jobs/artifacts/${version}/download?job=build`;
|
|
||||||
|
|
||||||
/********************/
|
/********************/
|
||||||
/* BUILD */
|
/* BUILD */
|
||||||
|
|
|
@ -91,7 +91,7 @@
|
||||||
"gridUnits": "m",
|
"gridUnits": "m",
|
||||||
"primaryTokenAttribute": "combatValues.hitPoints",
|
"primaryTokenAttribute": "combatValues.hitPoints",
|
||||||
"url": "https://git.f3l.de/dungeonslayers/ds4",
|
"url": "https://git.f3l.de/dungeonslayers/ds4",
|
||||||
"manifest": "https://git.f3l.de/dungeonslayers/ds4/-/raw/latest/src/system.json?inline=false",
|
"manifest": "https://git.f3l.de/api/v4/projects/dungeonslayers%2Fds4/packages/generic/ds4/latest/system.json",
|
||||||
"download": "https://git.f3l.de/dungeonslayers/ds4/-/jobs/artifacts/1.4.0/download?job=build",
|
"download": "https://git.f3l.de/dungeonslayers/ds4/-/jobs/artifacts/1.4.0/download?job=build",
|
||||||
"license": "https://git.f3l.de/dungeonslayers/ds4#licensing",
|
"license": "https://git.f3l.de/dungeonslayers/ds4#licensing",
|
||||||
"initiative": "@combatValues.initiative.total",
|
"initiative": "@combatValues.initiative.total",
|
||||||
|
|
Loading…
Reference in a new issue