-
Notifications
You must be signed in to change notification settings - Fork 1
139 lines (120 loc) · 3.51 KB
/
github-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
131
132
133
134
135
136
137
138
139
name: GitHub CI/CD
on:
push:
branches: [ '**' ]
pull_request:
branches: [ '**' ]
jobs:
build:
name: Build
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [ 18.16.1 ]
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm ci
- name: Test
run: npm run test
- name: Archive coverage artifact
if: github.ref == 'refs/heads/master'
uses: actions/upload-artifact@master
with:
name: ts-serializer-coverage
path: ./coverage
- name: Linter
run: npm run lint
- name: Build
run: npm run build
env:
CI: true
- name: Archive production artifact
if: github.ref == 'refs/heads/master'
uses: actions/upload-artifact@master
with:
name: ts-serializer
path: ./dist
coverall:
name: Coverall
needs: build
if: github.ref == 'refs/heads/master'
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [ 14.16.1 ]
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Download artifact
uses: actions/download-artifact@master
with:
name: ts-serializer-coverage
path: ./coverage
- name: Send coverage to Coverall
uses: coverallsapp/github-action@v1.0.1
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
path-to-lcov: ./coverage/lcov.info
deploy-paddls:
name: Deploy @paddls
needs: build
if: "github.ref == 'refs/heads/master' && contains(github.event.head_commit.message, 'release: v')"
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [ 14.16.1 ]
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Download artifact
uses: actions/download-artifact@master
with:
name: ts-serializer
path: ./dist
- name: Publish @paddls
uses: pascalgn/npm-publish-action@1.3.9
with:
tag_name: "v%s"
tag_message: "v%s"
commit_pattern: "^release: v(\\S+)"
publish_args: "--access public"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN_PADDLS }}
deploy-witty-services:
name: Deploy @witty-services
needs: build
if: "github.ref == 'refs/heads/master' && contains(github.event.head_commit.message, 'release: v')"
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [ 14.16.1 ]
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Download artifact
uses: actions/download-artifact@master
with:
name: ts-serializer
path: ./dist
- name: PrePublish @witty-services
uses: jossef/action-set-json-field@v1
with:
file: package.json
field: name
value: "@witty-services/ts-serializer"
- name: Publish @witty-services
uses: pascalgn/npm-publish-action@1.3.9
with:
commit_pattern: "^release: v(\\S+)"
publish_args: "--access public"
create_tag: "false"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN_PADDLS }}