-
Notifications
You must be signed in to change notification settings - Fork 34
129 lines (113 loc) · 2.43 KB
/
build.yaml
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
on:
workflow_dispatch:
push:
branches:
- '**'
tags:
- 'v**'
pull_request:
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
continue-on-error: true
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 18.x
- name: Prepare Environment
run: |
corepack enable
yarn install
env:
CI: true
- name: Run typecheck
run: |
yarn build:ts
env:
CI: true
- name: Run linter
run: |
yarn lint
env:
CI: true
test:
name: Tests
runs-on: ${{ matrix.os }}
timeout-minutes: 15
strategy:
fail-fast: false
matrix:
os:
- windows-latest
- ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js 18.x
uses: actions/setup-node@v4
with:
node-version: 18.x
- name: Prepare Environment
run: |
corepack enable
yarn install
env:
CI: true
- name: Run tests
run: |
yarn unit
env:
CI: true
build:
name: Build binaries
runs-on: ${{ matrix.os }}
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
os:
- windows-latest
- ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: 18.x
- name: Run build
shell: bash
env:
CI: true
PKG_CACHE_PATH: ${{ runner.temp }}
run: |
corepack enable
yarn install
yarn build
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.os }}
path: deploy
release:
name: Create Release
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
needs:
- build
permissions:
contents: write
steps:
- name: Download artifact
uses: actions/download-artifact@v4
with:
path: deploy
- name: Create Release
uses: softprops/action-gh-release@v2
with:
files: deploy/*/*.zip
prerelease: contains(github.ref, '-')
fail_on_unmatched_files: true