-
Notifications
You must be signed in to change notification settings - Fork 20
139 lines (115 loc) · 3.48 KB
/
pr.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: Pull Request
on:
pull_request:
branches:
- master
- develop
repository_dispatch:
types: [pull-request-develop, pull-request-master]
jobs:
checkout-and-build-pr:
name: checkout-and-build-pr
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Setup node
uses: actions/setup-node@v1
with:
node-version: 10.x
- name: Cache node_modules
id: cache-node-modules
uses: actions/cache@v1
env:
cache-name: node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-${{ env.cache-name }}-
- name: Install Dependencies
run: npm ci
- name: Install NR1 CLI
run: curl -s https://cli.nr-ext.net/installer.sh | sudo bash
- name: NR1 Nerdpack Build
run: |
nr1 nerdpack:build
eslint:
name: eslint
needs: checkout-and-build-pr
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Setup node
uses: actions/setup-node@v1
with:
node-version: 10.x
- name: Cache node_modules
id: cache-node-modules
uses: actions/cache@v1
env:
cache-name: node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-${{ env.cache-name }}-
- name: Install Dependencies
run: npm ci
- name: Run eslint-check and generate report
id: eslint-check
run: |
npm run eslint-check -- --output-file eslint_report.json --format json
continue-on-error: true
- name: Annotate Lint Results
uses: ataylorme/eslint-annotate-action@1.0.4
with:
repo-token: ${{ secrets.GITHUB_TOKEN }}
report-json: eslint_report.json
continue-on-error: true
- name: Check eslint-check outcome
if: steps.eslint-check.outcome != 'success'
run: |
echo "::error::eslint-check failed. View output of _Run eslint-check and generate report_ step"
exit 1
test:
name: test
needs: checkout-and-build-pr
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Setup node
uses: actions/setup-node@v1
with:
node-version: 10.x
- name: Cache node_modules
id: cache-node-modules
uses: actions/cache@v1
env:
cache-name: node-modules
with:
path: ~/.npm
key: ${{ runner.os }}-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-${{ env.cache-name }}-
- name: Install Dependencies
run: npm ci
- name: Run npm test
run: npm test
validate-nerdpack:
name: validate nerdpack
needs: checkout-and-build-pr
runs-on: ubuntu-latest
steps:
- name: Checkout repo
uses: actions/checkout@v2
- name: Validate Open Source Files
uses: newrelic/validate-nerdpack-action@v1.0.2
- name: Install NR1 CLI
run: |
curl -s https://cli.nr-ext.net/installer.sh | sudo bash
- name: Validate Nerdpack Schema
run: |
nr1 nerdpack:validate