generated from ChainSafe/typescript-lib-template
-
Notifications
You must be signed in to change notification settings - Fork 9
130 lines (130 loc) · 4.23 KB
/
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
130
name: Test
on:
pull_request:
branches:
- master
types:
- opened
- reopened
- synchronize
jobs:
build:
name: Build TSC
strategy:
matrix:
node:
- 16
- 18
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: '${{ matrix.node }}'
cache: yarn
- run: corepack enable
- run: yarn install
- run: >-
tar -czf /tmp/chainlink-plugin-${{ matrix.node }}.js.tar.gz
--exclude="./.git" ./
- uses: actions/upload-artifact@v3
with:
name: 'chainlink-plugin-${{ matrix.node }}.js.tar.gz'
path: '/tmp/chainlink-plugin-${{ matrix.node }}.js.tar.gz'
- uses: actions/cache/save@v3
with:
path: |
~/.cache/Cypress
key: cypress-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
build-web:
name: Build Webpack
needs: build
runs-on: ubuntu-latest
strategy:
matrix:
node:
- 16
- 18
steps:
- uses: actions/download-artifact@v3
with:
name: 'chainlink-plugin-${{ matrix.node }}.js.tar.gz'
path: /tmp
- run: corepack enable
- run: 'tar -xf /tmp/chainlink-plugin-${{ matrix.node }}.js.tar.gz -C ./'
- run: 'yarn build:web'
lint:
name: lint
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v3
with:
name: chainlink-plugin-18.js.tar.gz
path: /tmp
- run: corepack enable
- run: tar -xf /tmp/chainlink-plugin-18.js.tar.gz -C ./
- run: yarn lint
unit:
name: Unit Tests
needs: build
runs-on: ubuntu-latest
strategy:
matrix:
node:
- 16
- 18
steps:
- uses: actions/download-artifact@v3
with:
name: 'chainlink-plugin-${{ matrix.node }}.js.tar.gz'
path: /tmp
- run: 'tar -xf /tmp/chainlink-plugin-${{ matrix.node }}.js.tar.gz -C ./'
- run: corepack enable
- run: 'yarn test:unit'
browser-tests:
name: Browser Tests
needs: build
runs-on: ubuntu-latest
strategy:
matrix:
browser: ['electron', 'chrome', 'firefox']
steps:
- uses: browser-actions/setup-firefox@latest
if: matrix.browser == 'firefox'
- uses: actions/download-artifact@v3
with:
name: chainlink-plugin-16.js.tar.gz
path: /tmp
- run: tar -xf /tmp/chainlink-plugin-16.js.tar.gz -C ./
- uses: actions/cache@v3
with:
path: |
~/.cache/Cypress
key: cypress-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
- run: corepack enable
- run: yarn add --no-package-lock --no-save --force cypress
- name: Cypress run
uses: cypress-io/github-action@v5
with:
install: false
command: 'yarn run test:e2e:${{ matrix.browser }}'
cache-key: node-v16-on-${{ matrix.browser }}-hash-${{ hashFiles('yarn.lock') }}
black-box:
name: Black Box Tests
needs: build
runs-on: ubuntu-latest
strategy:
matrix:
node:
- 16
- 18
steps:
- uses: actions/download-artifact@v3
with:
name: chainlink-plugin-${{ matrix.node }}.js.tar.gz
path: /tmp
- run: tar -xf /tmp/chainlink-plugin-${{ matrix.node }}.js.tar.gz -C ./
- run: |
yarn test:black-box
shell: bash