-
Notifications
You must be signed in to change notification settings - Fork 3
129 lines (99 loc) · 2.91 KB
/
build-and-test.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
name: Build and Test
on:
push:
branches:
- main
- beta
pull_request:
permissions:
contents: read # for checkout
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install dependencies
run: yarn install
- name: Build application
run: yarn build
- name: Run linting
run: yarn lint
- name: Run unit tests and generate coverage
run: yarn test --ci --coverage
- name: Pack build
run: yarn pack -o use-debouncy-pack.tgz
- name: Install packed package
run: npm install ../use-debouncy-pack.tgz
working-directory: test-publish
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4
- name: Archive build artifacts
uses: actions/upload-artifact@v3
with:
name: build-artifacts
path: |
lib
use-debouncy-pack.tgz
playwright:
timeout-minutes: 60
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js 18
uses: actions/setup-node@v4
with:
node-version: 18
- run: yarn install
- name: Install Playwright Browsers
run: npx -y playwright@1.47.2 install --with-deps
- name: Build
run: yarn build
- name: Run Playwright tests
run: yarn playwright test
- uses: actions/upload-artifact@v3
if: always()
with:
name: playwright-report
path: playwright-report/
retention-days: 30
release:
runs-on: ubuntu-latest
needs: ['build-and-test', 'playwright']
permissions:
contents: write # to be able to publish a GitHub release
issues: write # to be able to comment on released issues
pull-requests: write # to be able to comment on released pull requests
id-token: write # to enable use of OIDC for npm provenance
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_BOT }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Node.js 18
uses: actions/setup-node@v4
with:
node-version: 18
- name: Install dependencies
run: yarn install
- name: Build application
run: yarn build
- name: npm credentials
run: npm config set //registry.npmjs.org/:_authToken $NPM_TOKEN
- name: yarn credentials
run: yarn config set npmAuthToken $NPM_TOKEN
- name: Whoiam
run: yarn npm whoami --publish
- name: Archive production artifacts
uses: actions/upload-artifact@v3
with:
name: build-artifacts
path: |
lib
- name: Release
run: yarn release