-
Notifications
You must be signed in to change notification settings - Fork 0
/
.gitlab-ci.yml
53 lines (50 loc) · 1.73 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
stages:
- test
- build
- release
test:
stage: test
image: denoland/deno:alpine-1.28.3
coverage: '/cover .* ... (\x1B(?:[@-Z\\-_]|\[[0-?]*[ -\/]*[@-~]))*\d+\.\d+%/'
script:
- deno task test
- deno coverage --lcov coverage > lcov
- deno run -A https://deno.land/x/lcov_cobertura/mod.ts lcov > coverage.xml
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: coverage.xml
only:
- tags
build:
stage: build
image: denoland/deno:alpine-1.28.3
script:
- echo 'http://dl-cdn.alpinelinux.org/alpine/v3.17/main' >> /etc/apk/repositories
- apk add npm git openssh
- deno compile mod.ts -o $CI_PROJECT_NAME
- deno run -A https://gitlab.com/zookatron/gitlab-build-tools/-/raw/main/upload_package.ts $CI_PROJECT_NAME
- deno run -A https://gitlab.com/zookatron/gitlab-build-tools/-/raw/main/changelog.ts > CHANGELOG
- deno task npm
- mkdir -p ~/.ssh
- echo -e 'Host *\n StrictHostKeyChecking no\n UserKnownHostsFile=/dev/null' > ~/.ssh/config
- eval $(ssh-agent -s)
- echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
- git remote add github git@github.com:zookatron/dotenv_cli.git
- git push github $CI_COMMIT_TAG:main
- git push github --tags
artifacts:
paths:
- CHANGELOG
only:
- tags
release:
stage: release
image: registry.gitlab.com/gitlab-org/release-cli:latest
script:
- |
release-cli create --name $CI_COMMIT_TAG --description "$(cat CHANGELOG)" --tag-name $CI_COMMIT_TAG \
--assets-link "{\"name\":\"$CI_PROJECT_NAME\",\"url\":\"$CI_API_V4_URL/projects/$CI_PROJECT_ID/packages/generic/$CI_PROJECT_NAME/$CI_COMMIT_TAG/$CI_PROJECT_NAME\",\"filepath\":\"/$CI_PROJECT_NAME\"}"
only:
- tags