-
Notifications
You must be signed in to change notification settings - Fork 2
164 lines (161 loc) · 5.83 KB
/
CI-release.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
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
name: "CI Release"
on:
workflow_run:
workflows:
- "CI build"
types:
- "completed"
jobs:
# Generate and upload executables to Github releases
generate-upload-tarballs-linux-x64:
name: Generate and upload tarballs for Linux x64
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: ubuntu-latest
steps:
- run: sudo apt update && sudo apt install -y gcc g++ make git build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev libfontconfig1 fontconfig libfontconfig1-dev libfontconfig nsis p7zip
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.head_ref }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn
- name: Get latest release tag
id: previoustag
uses: WyriHaximus/github-action-get-previous-tag@v1
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Download web uis
run: yarn ci:download-web-uis
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Generate tarballs
run: yarn generate:executable:tarballs:linux:x64
- name: Rename tarballs and installers
run: yarn ci:rename-tarballs
- name: Upload tarballs to release
uses: svenstaro/upload-release-action@v2
with:
file: "*.tar.gz"
file_glob: true
tag: ${{ steps.previoustag.outputs.tag }}
overwrite: true
generate-upload-tarballs-macos-x64-arm64:
name: Generate and upload tarballs for Macos (x64 + arm64)
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: macos-latest # will use arm64
strategy:
matrix:
arch: [x64, arm64]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.head_ref }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn
- name: Get latest release tag
id: previoustag
uses: WyriHaximus/github-action-get-previous-tag@v1
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Download web uis
run: yarn ci:download-web-uis
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Generate tarballs
run: yarn generate:executable:tarballs:macos:${{ matrix.arch }}
- name: Rename tarballs and installers
run: yarn ci:rename-tarballs
- name: Upload tarballs to release
uses: svenstaro/upload-release-action@v2
with:
file: "*.tar.gz"
file_glob: true
tag: ${{ steps.previoustag.outputs.tag }}
overwrite: true
generate-upload-windows-installers:
name: Generate and upload windows installers
if: ${{ github.event.workflow_run.conclusion == 'success' }}
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.head_ref }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
cache: yarn
- name: Get latest release tag
id: previoustag
uses: WyriHaximus/github-action-get-previous-tag@v1
- name: Install dependencies
run: yarn install --frozen-lockfile
- name: Download web uis
run: yarn ci:download-web-uis
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Generate Windows installer
run: yarn generate:installer:windows
shell: bash
# You can't use oclif pack on windows, so we're skipping it for now
# - name: Generate Windows tarballs
# run: yarn generate:executable:tarballs:windows
- name: Rename tarballs and installers
run: yarn ci:rename-tarballs
- name: Upload windows installers to release
uses: svenstaro/upload-release-action@v2
with:
file: "*.exe"
file_glob: true
tag: ${{ steps.previoustag.outputs.tag }}
overwrite: true
generate-upload-tarballs-linux-arm64:
name: Generate and upload linux arm64 tarballs
runs-on: ubuntu-latest
if: ${{ github.event.workflow_run.conclusion == 'success' }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.head_ref }}
- name: "Get latest release tag"
id: previoustag
uses: "WyriHaximus/github-action-get-previous-tag@v1"
- uses: pguyot/arm-runner-action@v2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
base_image: raspios_lite_arm64:latest
cpu_info: cpuinfo/raspberrypi_zero2_w_arm64
image_additional_mb: 2048
import_github_env: true
bind_mount_repository: true
commands: |
sudo apt-get update
sudo apt-get install -y ca-certificates curl gnupg gcc g++ make git build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev libfontconfig1 fontconfig libfontconfig1-dev libfontconfig
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs
npm install --global yarn
yarn install --frozen-lockfile
yarn ci:download-web-uis
yarn generate:executable:tarballs:linux:arm64
yarn ci:rename-tarballs
- name: Upload tarballs to release
uses: svenstaro/upload-release-action@v2
with:
file: "*.tar.gz"
file_glob: true
tag: ${{ steps.previoustag.outputs.tag }}
overwrite: true