-
Notifications
You must be signed in to change notification settings - Fork 15
130 lines (108 loc) · 3.32 KB
/
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
name: CI
on:
pull_request:
push:
branches:
- main
tags:
- v*
paths-ignore:
- '**/*.md'
permissions:
contents: read
env:
PNPM_VERSION: 10
jobs:
build:
name: Build, Lint and Test
runs-on: ubuntu-latest
env:
NX_BRANCH: ${{ github.event.number || github.ref_name }}
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
with:
node-version-file: .nvmrc
check-latest: true
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm exec nx lint nx-stylelint
if: always()
- run: pnpm exec nx test nx-stylelint --ci
if: always()
- run: pnpm exec nx build nx-stylelint
if: always()
e2e:
name: E2E Matrix - ${{ matrix.os }} (Node ${{ matrix.node-version }})
runs-on: ${{ matrix.os }}
env:
NX_BRANCH: ${{ github.event.number || github.ref_name }}
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
needs: build
if: ${{ !startsWith(github.ref, 'refs/tags/v') }}
strategy:
matrix:
os:
- ubuntu-latest
# - windows-latest Temporary disabled
- macos-latest
node-version:
- 18
- 20
- 22
- 23
fail-fast: false
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
with:
node-version: ${{ matrix.node-version }}
check-latest: true
cache: pnpm
- run: pnpm install --frozen-lockfile
- run: pnpm exec nx run e2e:e2e --configuration=ci
publish:
name: Publish to NPM
runs-on: ubuntu-latest
needs: build
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
env:
NX_BRANCH: ${{ github.event.number || github.ref_name }}
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }}
IS_BETA_RELEASE: ${{ contains(github.ref_name, 'beta') }}
permissions:
contents: read
id-token: write
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- uses: pnpm/action-setup@v4
with:
version: ${{ env.PNPM_VERSION }}
- uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4
with:
node-version-file: .nvmrc
registry-url: https://registry.npmjs.org
check-latest: true
cache: pnpm
- run: pnpm install --frozen-lockfile
- name: Publish
if: env.IS_BETA_RELEASE == 'false'
run: pnpm exec nx release publish
shell: bash
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_CONFIG_PROVENANCE: true
- name: Publish Beta
if: env.IS_BETA_RELEASE == 'true'
run: pnpm exec nx release publish --tag beta
shell: bash
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_CONFIG_PROVENANCE: true