-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.gitlab-ci.yml
More file actions
48 lines (42 loc) · 1.2 KB
/
Copy path.gitlab-ci.yml
File metadata and controls
48 lines (42 loc) · 1.2 KB
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
image: node:24
stages:
- validate
- publish
variables:
PNPM_HOME: "$CI_PROJECT_DIR/.pnpm"
PNPM_STORE_DIR: "$CI_PROJECT_DIR/.pnpm-store"
cache:
key:
files:
- pnpm-lock.yaml
paths:
- .pnpm-store/
- .pnpm/
before_script:
- corepack enable
- corepack prepare pnpm@10.33.1 --activate
- pnpm config set store-dir "$PNPM_STORE_DIR"
- pnpm install --frozen-lockfile
validate:
stage: validate
script:
- pnpm run build
- pnpm run typecheck
- pnpm run test --pool=forks
rules:
- if: "$CI_PIPELINE_SOURCE == 'merge_request_event'"
- if: "$CI_COMMIT_BRANCH"
- if: "$CI_COMMIT_TAG"
publish:npm:
stage: publish
needs:
- validate
script:
- test -n "$NPM_TOKEN"
- node -e 'const pkg = require("./package.json"); const tag = process.env.CI_COMMIT_TAG || ""; const expected = "v" + pkg.version; if (tag !== expected) throw new Error("Tag " + tag + " does not match package version " + expected);'
- pnpm run build
- pnpm run build:embed
- printf "//registry.npmjs.org/:_authToken=%s\n" "$NPM_TOKEN" > .npmrc
- pnpm publish --access public --no-git-checks --ignore-scripts
rules:
- if: "$CI_COMMIT_TAG =~ /^v\\d+\\.\\d+\\.\\d+$/"