-
-
Notifications
You must be signed in to change notification settings - Fork 97
164 lines (136 loc) · 5.34 KB
/
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: Release
on:
push:
branches:
- "main"
workflow_dispatch:
jobs:
publish_windows:
name: "Publish Windows"
runs-on: windows-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v3
- name: Install Node.js and NPM
uses: actions/setup-node@master
with:
node-version: 20
- name: Install dependencies
# npm ci is better, but requires package-lock.json file
run: npm install
- name: Build and release app
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CSC_LINK: ${{ secrets.CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
run: npm run release
publish_linux:
name: "Publish Linux x64"
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v3
- name: Install Node.js and NPM
uses: actions/setup-node@master
with:
node-version: 20
- name: Install dependencies
run: npm install
- name: Build and release app
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npm run release
# This needs it's own build
# https://github.com/ChurchApps/FreeShow/issues/562
publish_linux_arm:
name: "Publish Linux arm64"
runs-on: ubuntu-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v4
- name: find release
run: echo "RELEASE_NAME=$(jq -r .version package.json)" >> "$GITHUB_ENV"
- name: Install Node.js and NPM
uses: actions/setup-node@master
with:
node-version: 20
architecture: 'arm64'
- uses: uraimo/run-on-arch-action@v2
name: Run commands
id: runcmd
with:
arch: aarch64
distro: ubuntu22.04
# Create an artifacts directory
setup: |
mkdir -p "${PWD}/artifacts"
# Mount the artifacts directory as /artifacts in the container
dockerRunArgs: |
--volume "${PWD}/artifacts:/artifacts"
env: |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
githubToken: ${{ github.token }}
install: |
echo apt update
apt -q update
echo apt install
apt -q install -y wget git python3 make g++ ruby-dev build-essential jq
# https://github.com/electron-userland/electron-builder/issues/6116#issuecomment-1091205145
gem install fpm
run: |
echo fetch nodejs
mkdir tools
cd tools
wget -q https://github.com/actions/node-versions/releases/download/20.15.0-9607683765/node-20.15.0-linux-arm64.tar.gz
echo unpack
tar xzf node-20.15.0-linux-arm64.tar.gz
cd ..
export PATH=`pwd`/tools/bin:$PATH
echo $PATH
echo npm install
tools/bin/npm install
sleep 30
echo npm run release
export USE_SYSTEM_FPM=true
tools/bin/npm run release:arm64
cp dist/*.AppImage /artifacts/
- name: 'Upload Artifact'
uses: actions/upload-artifact@v4
with:
name: FreeShow-arm64-${{ env.RELEASE_NAME }}
path: artifacts/FreeShow*AppImage
publish_mac:
name: "Publish MacOS"
runs-on: macos-latest
steps:
- name: Check out Git repository
uses: actions/checkout@v3
- name: Install Node.js and NPM
uses: actions/setup-node@master
with:
node-version: 20
# Change Python version: https://github.com/nodejs/node-gyp/issues/2869
- name: Install Python 3.11
uses: actions/setup-python@v4
with:
python-version: "3.11"
# This probably does not make any difference.
- name: Install node-gyp
run: npm install -g node-gyp
- name: Install dependencies
run: npm install
- name: Install dmg-license
run: npm i dmg-license
# for some reason the build command don't continue after the rollup build
- name: Sleep for 5 minutes
run: sleep 300
shell: bash
- name: Build and release app
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CSC_LINK: ${{ secrets.CSC_LINK }}
CSC_KEY_PASSWORD: ${{ secrets.CSC_KEY_PASSWORD }}
APPLE_ID: ${{ secrets.APPLEID }}
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLEIDPASS }}
APPLE_TEAM_ID: ${{ secrets.APPLETEAMID }}
run: npm run release