ds4/.gitlab-ci.yml

94 lines
2 KiB
YAML
Raw Normal View History

2021-06-26 22:02:00 +02:00
# SPDX-FileCopyrightText: 2021 Johannes Loher
# SPDX-FileCopyrightText: 2021 Oliver Rümpelein
#
# SPDX-License-Identifier: MIT
2021-02-11 11:19:33 +01:00
image: node:lts
2020-12-23 18:36:41 +01:00
stages:
2020-12-27 13:33:53 +01:00
- test
- build
2021-01-09 18:20:23 +01:00
- release
2020-12-23 18:36:41 +01:00
2021-02-11 12:34:01 +01:00
before_script:
2021-02-11 12:43:52 +01:00
- yarn install --immutable
2021-02-11 12:34:01 +01:00
cache: &global_cache
2020-12-23 20:23:44 +01:00
paths:
2021-02-11 12:43:52 +01:00
- .yarn/cache
2020-12-27 13:33:53 +01:00
lint:
stage: test
2020-12-23 20:15:28 +01:00
script:
2021-02-11 12:34:01 +01:00
- yarn lint
cache:
<<: *global_cache
2020-12-27 13:33:53 +01:00
2020-12-30 21:30:31 +01:00
test:
stage: test
script:
2021-02-11 12:34:01 +01:00
- yarn test:ci
2020-12-30 21:31:35 +01:00
cache:
<<: *global_cache
2020-12-30 22:37:34 +01:00
artifacts:
when: always
reports:
junit:
2021-02-11 13:42:38 +01:00
- junit.xml
2020-12-27 13:33:53 +01:00
build:
stage: build
script:
2021-02-11 12:34:01 +01:00
- yarn build
2021-01-06 00:59:22 +01:00
- mv dist ds4
cache:
<<: *global_cache
2020-12-27 15:19:20 +01:00
artifacts:
paths:
2021-01-06 00:59:22 +01:00
- ds4
2020-12-27 16:43:20 +01:00
expire_in: 1 week
2020-12-27 16:38:16 +01:00
2021-01-09 18:47:20 +01:00
.release-template: &release-template
2021-01-09 18:20:23 +01:00
stage: release
before_script:
2021-02-11 12:34:01 +01:00
- yarn install
2021-01-09 18:20:23 +01:00
- apt update
2021-01-09 18:23:56 +01:00
- apt install --yes jq
2021-01-09 19:01:22 +01:00
- 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
- git branch -D ci-processing || true
- git checkout -b ci-processing
2021-01-09 18:20:23 +01:00
cache:
<<: *global_cache
script: |
2021-03-17 12:15:25 +01:00
yarn bump-version --release=${RELEASE_TYPE}
2021-01-09 18:20:23 +01:00
RELEASE_VERSION=$(jq -r '.version' < package.json)
2021-02-21 05:57:27 +01:00
git add package.json src/system.json
2021-01-09 18:34:30 +01:00
git --no-pager diff
2021-01-09 18:47:20 +01:00
git commit -m "release version ${RELEASE_VERSION}"
2021-01-09 18:20:23 +01:00
git tag -f latest
2021-01-09 18:29:30 +01:00
git tag -f ${RELEASE_VERSION}
2021-01-09 18:49:05 +01:00
git push origin ci-processing:${CI_BUILD_REF_NAME}
git push origin latest -f
git push origin ${RELEASE_VERSION}
2021-01-09 19:06:26 +01:00
only:
- master
2021-01-09 18:20:23 +01:00
when: manual
2021-01-09 18:47:20 +01:00
release-patch:
variables:
RELEASE_TYPE: patch
<<: *release-template
release-minor:
variables:
RELEASE_TYPE: minor
2021-01-09 18:47:20 +01:00
<<: *release-template
release-major:
variables:
RELEASE_TYPE: major
2021-01-09 18:47:20 +01:00
<<: *release-template