110 lines
3.2 KiB
YAML
110 lines
3.2 KiB
YAML
|
---
|
||
|
version: '3'
|
||
|
|
||
|
tasks:
|
||
|
app:beta:
|
||
|
deps:
|
||
|
- :publish:android:beta
|
||
|
- :publish:chrome:private
|
||
|
- :publish:firefox:private
|
||
|
- :publish:ios:beta
|
||
|
- :publish:opera:private
|
||
|
desc: Publish a beta release of all the release targets
|
||
|
hide: '{{ne (print .REPOSITORY_TYPE "-" .REPOSITORY_SUBTYPE) "angular-app"}}'
|
||
|
log:
|
||
|
error: Error publishing beta release
|
||
|
start: Publishing beta release
|
||
|
success: Finished publishing beta release
|
||
|
|
||
|
app:release:
|
||
|
deps:
|
||
|
- :publish:android:release
|
||
|
- :publish:brew:cask
|
||
|
- :publish:chrome:release
|
||
|
- :publish:firefox:release
|
||
|
- :publish:ios:release
|
||
|
- :publish:opera:release
|
||
|
- :publish:menubar:release
|
||
|
desc: Publish a production release of all the targets
|
||
|
hide: '{{ne (print .REPOSITORY_TYPE "-" .REPOSITORY_SUBTYPE) "angular-app"}}'
|
||
|
summary: |
|
||
|
This task is used to release Angular applications.
|
||
|
log:
|
||
|
error: Error publishing `production` release
|
||
|
start: Publishing `production` release
|
||
|
success: Successfully published `production` release
|
||
|
|
||
|
semantic-release:
|
||
|
deps:
|
||
|
- task: :install:modules:local
|
||
|
vars:
|
||
|
SEMANTIC_RELEASE:
|
||
|
sh: echo true
|
||
|
- :install:npm:semantic-release
|
||
|
- :install:software:git
|
||
|
vars:
|
||
|
RELEASE_PREFIX:
|
||
|
sh: if [ -f setup.cfg ]; then echo 'poetry run '; else echo ''; fi
|
||
|
RUN_OPTIONS: '{{if .CLI_ARGS}} {{.CLI_ARGS}}{{else}} --ci false --debug --dry-run false{{end}}'
|
||
|
env:
|
||
|
GIT_CREDENTIALS:
|
||
|
sh: |
|
||
|
if [ -n "$CI" ]; then
|
||
|
echo "gitlab-ci-token:$CI_BUILD_TOKEN"
|
||
|
fi
|
||
|
HUSKY: '0'
|
||
|
PUBLISHING: 'true'
|
||
|
SEMANTIC_RELEASE: 'true'
|
||
|
log:
|
||
|
error: Error while running `semantic-release`
|
||
|
start: Releasing with `semantic-release`..
|
||
|
success: Finished running `semantic-release`
|
||
|
cmds:
|
||
|
- git fetch --tags -f
|
||
|
- task: semantic-release:prepare
|
||
|
- |
|
||
|
{{.RELEASE_PREFIX}}semantic-release -r "$(git remote get-url origin)"{{.RUN_OPTIONS}}
|
||
|
- git push all master || git push origin master
|
||
|
|
||
|
semantic-release:build:
|
||
|
cmds:
|
||
|
- rm -rf artifacts build dist
|
||
|
- task: :release:build
|
||
|
|
||
|
semantic-release:poetry:
|
||
|
deps:
|
||
|
- :install:software:poetry
|
||
|
cmds:
|
||
|
- poetry install -E semantic
|
||
|
status:
|
||
|
- '[ ! -f setup.cfg ]'
|
||
|
|
||
|
semantic-release:prepare:
|
||
|
deps:
|
||
|
- task: :install:modules:local:sync
|
||
|
vars:
|
||
|
NPM_KEEP_UPDATED: '{{.SEMANTIC_CONFIG}}'
|
||
|
- :common:update:variables
|
||
|
- :npm:config
|
||
|
- semantic-release:build
|
||
|
- semantic-release:poetry
|
||
|
- version:tag
|
||
|
|
||
|
version:tag:
|
||
|
deps:
|
||
|
- :ci:commit:config
|
||
|
- :install:software:jq
|
||
|
summary: |
|
||
|
This command is intended to be used before the `semantic-release` task to ensure
|
||
|
that the latest git tag is up-to-date with the latest `package.json` version.
|
||
|
cmds:
|
||
|
- git fetch --all --tags -f
|
||
|
- git tag "v$(jq -r '.version' package.json)"
|
||
|
status:
|
||
|
- git tag | grep "v$(jq -r '.version' package.json)"
|
||
|
preconditions:
|
||
|
- sh: '[ -f package.json ]'
|
||
|
msg: A package.json file must be present!
|
||
|
- sh: '[ "$(jq -r \".version\" package.json)" != "null" ]'
|
||
|
msg: Version must be defined in package.json
|