-
-
Notifications
You must be signed in to change notification settings - Fork 13
129 lines (127 loc) · 3.56 KB
/
publish.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: Publish
on:
push:
tags:
- '*'
schedule:
- cron: 0 11 * * *
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/[email protected]
- name: Install dependencies
run: npm ci --ignore-scripts
- name: Lint the codebase
run: npm run lint:ci
test:
name: Tests
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/[email protected]
- name: Install dependencies
run: npm ci --ignore-scripts
- name: Run tests
run: npm run test:ci
- name: Upload coverage
uses: actions/[email protected]
with:
name: test_coverage
path: coverage
build_code:
name: Build code
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/[email protected]
- name: Install dependencies
run: npm ci --ignore-scripts
- name: Run tests
run: npm run build:ci
- name: Upload dist
uses: actions/[email protected]
with:
name: dist
path: dist
integration_tests:
name: Run integration tests
runs-on: ubuntu-latest
needs: build_code
steps:
- name: Checkout
uses: actions/[email protected]
- name: Install dependencies
run: npm ci --ignore-scripts
- name: Download dist/ folder
uses: actions/[email protected]
with:
name: dist
path: dist
- name: Run integration tests
run: npm run test:integration:ci
build_docs:
name: Build Docs
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/[email protected]
- name: Install dependencies
run: npm ci --ignore-scripts
- name: Build storybook
run: npm run docs:ci
- name: Upload the storybook
uses: actions/[email protected]
with:
name: docs
path: docs
deploy_docs:
needs: build_docs
name: Deploy docs
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/[email protected]
- name: Install dependencies
run: npm ci --ignore-scripts
- name: Download storybook
uses: actions/[email protected]
with:
name: docs
path: docs
- name: Fetch all
run: git fetch --all
- name: Get the latest tag version
id: get-last-tag
run: |
last_tag=$( git describe --tags --abbrev=0 )
echo "::set-output name=LAST_TAG::${last_tag}"
- name: Deploy Docs to GitHub Pages
uses: crazy-max/[email protected]
with:
target_branch: '${{ secrets.DOCS_TARGET_BRANCH }}'
build_dir: docs
committer_name: '${{ secrets.AUTOCOMMITTER_NAME }}'
committer_email: '${{ secrets.AUTOCOMMITTER_EMAIL }}'
commit_message: 'Update docs for package v${{ steps.get-last-tag.LAST_TAG }}'
env:
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
GITHUB_PAT: '${{ secrets.GH_PAT }}'
publish:
needs: [lint, test, build_code, build_docs, integration_tests]
name: Publish to npm
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/[email protected]
- name: Install dependencies
run: npm ci --ignore-scripts
- name: Publish
run: |
echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc
npm publish
env:
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
NPM_TOKEN: '${{ secrets.NPM_AUTH_TOKEN }}'