1
1
name : distributions release
2
-
2
+ run-name : ${{ github.event.head_commit.message }}
3
3
on :
4
4
push :
5
5
branches : [ master ]
6
-
7
6
concurrency :
8
7
group : ${{ github.workflow }}-${{ github.ref }}
9
8
cancel-in-progress : true
10
9
11
10
jobs :
12
11
pre-release :
13
12
strategy :
13
+ fail-fast : false
14
14
matrix :
15
- os : [ macos-latest, ubuntu-latest, windows-latest ]
15
+ os : [ macos-latest, windows-latest, ubuntu-latest ]
16
+ include :
17
+ - os : ' macos-latest'
18
+ args : ' --target universal-apple-darwin'
19
+ target : ' aarch64-apple-darwin,x86_64-apple-darwin'
20
+ - os : ' windows-latest'
21
+ args : ' --target aarch64-pc-windows-msvc'
22
+ target : ' aarch64-pc-windows-msvc'
23
+ aarch64 : true
24
+ - os : ' windows-latest'
25
+ args : ' --target x86_64-pc-windows-msvc'
26
+ target : ' x86_64-pc-windows-msvc'
27
+ x86_64 : true
28
+ - os : ' ubuntu-latest'
29
+ args : ' --target aarch64-unknown-linux-gnu'
30
+ target : ' aarch64-unknown-linux-gnu'
31
+ aarch64 : true
32
+ - os : ' ubuntu-latest'
33
+ args : ' --target x86_64-unknown-linux-gnu'
34
+ target : ' x86_64-unknown-linux-gnu'
35
+ x86_64 : true
16
36
node-version : [ 20.x ]
17
37
runs-on : ${{ matrix.os }}
18
38
19
39
steps :
20
40
- name : Github checkout
21
41
uses : actions/checkout@v4
22
- - name : Install rpm
23
- run : sudo apt-get install -y rpm
24
- if : matrix.os == 'ubuntu-latest'
25
- - name : Use Node.js ${{ matrix.node-version }}
42
+ - name : install Rust stable
43
+ uses : dtolnay/rust-toolchain@stable
44
+ with :
45
+ targets : ${{ matrix.target }}
46
+ - name : Use Node.js 20.x
26
47
uses : actions/setup-node@v4
27
48
with :
28
49
node-version : ${{ matrix.node-version }}
29
50
cache : ' npm'
30
- - uses : actions/setup-python@v4
31
- with :
32
- python-version : ' 3.10'
33
- - name : Setup .NET Core SDK
34
- if : matrix.os == 'windows-latest'
35
- uses : actions/setup-dotnet@v2
36
- with :
37
- dotnet-version : 6.0.x
38
- - run : npm ci
39
- - run : npm run package
40
- - name : Build app
41
- shell : bash
42
- run : ./scripts/make-distributions.sh
51
+ - name : install dependencies (ubuntu only)
52
+ if : matrix.os == 'ubuntu-latest'
53
+ run : |
54
+ sudo apt-get update
55
+ sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf pkg-config libssl-dev gcc-aarch64-linux-gnu
56
+ - name : install frontend dependencies
57
+ run : npm ci --legacy-peer-deps
58
+ - run : npm run lint:check
59
+ - run : npm audit --audit-level=critical
60
+ - run : npm run test:ci
61
+ - name : Upload coverage reports to Codecov
62
+ uses : codecov/codecov-action@v3
63
+ env :
64
+ CODECOV_TOKEN : ${{ secrets.CODECOV_TOKEN }}
65
+ - run : npm run build
66
+ - name : Build Distribution Binaries
67
+ uses : tauri-apps/tauri-action@v0
43
68
env :
44
- APPLE_ID : ${{ secrets.APPLE_ID }}
45
- APPLE_ID_PASSWORD : ${{ secrets.APPLE_ID_PASSWORD }}
46
- APPLE_TEAM_ID : ${{ secrets.APPLE_TEAM_ID }}
69
+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
70
+ PKG_CONFIG_ALLOW_CROSS : 1
71
+ CC_aarch64_unknown_linux_gnu : aarch64-linux-gnu-gcc
72
+ APPLE_CERTIFICATE : ${{ secrets.APPLE_CERTIFICATE }}
73
+ APPLE_CERTIFICATE_PASSWORD : ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
74
+ APPLE_SIGNING_IDENTITY : ${{ secrets.APPLE_SIGNING_IDENTITY }}
75
+ with :
76
+ args : ${{ matrix.args }}
47
77
48
- - name : Sign files with Trusted Signing
78
+ - name : Sign Binaries with Trusted Signing
49
79
if : matrix.os == 'windows-latest'
50
80
51
81
with :
@@ -55,66 +85,64 @@ jobs:
55
85
endpoint : https://eus.codesigning.azure.net/
56
86
trusted-signing-account-name : geek-fun
57
87
certificate-profile-name : geek-fun
58
- files-folder : ${{ github.workspace }}\out\make
88
+ files-folder : ${{ github.workspace }}\src-tauri\target\${{ matrix.target }}\release\bundle\nsis\
59
89
files-folder-depth : 7
60
90
files-folder-filter : exe
61
91
file-digest : SHA256
62
92
timestamp-rfc3161 : http://timestamp.acs.microsoft.com
63
93
timestamp-digest : SHA256
64
- - name : Upload artifacts
94
+ - name : Upload Distribution Binaries
65
95
uses : actions/upload-artifact@v4
66
96
with :
67
97
name : artifacts-${{ matrix.os }}
68
- path : out/make/*
98
+ path : |
99
+ ${{ github.workspace }}/src-tauri/target/universal-apple-darwin/release/bundle/dmg/*.dmg
100
+ ${{ github.workspace }}/src-tauri/target/${{ matrix.target }}/release/bundle/deb/*.deb
101
+ ${{ github.workspace }}/src-tauri/target/${{ matrix.target }}/release/bundle/appimage/*.AppImage
102
+ ${{ github.workspace }}\src-tauri\target\${{ matrix.target }}\release\bundle\nsis\*.exe
103
+
69
104
release :
70
105
needs : pre-release
71
106
runs-on : ubuntu-latest
72
107
steps :
73
108
- name : Github checkout
74
109
uses : actions/checkout@v4
75
- - name : Use Node.js 20.x
76
- uses : actions/setup-node @v4
110
+ - name : Download Distribution Binaries
111
+ uses : actions/download-artifact @v4
77
112
with :
78
- node-version : 20.x
79
- cache : ' npm '
113
+ path : artifacts
114
+ merge-multiple : true
80
115
- name : Generate changelog
81
116
uses : jaywcjlove/changelog-generator@main
82
117
id : changelog
83
118
with :
84
119
token : ${{ secrets.GITHUB_TOKEN }}
85
- - name : Download artifacts
86
- uses : actions/download-artifact@v4
87
- with :
88
- path : out/make/
89
- merge-multiple : true
90
- - name : Build Release
120
+ - name : Tag Release
91
121
uses : jaywcjlove/create-tag-action@main
92
122
id : tag_release
93
123
with :
94
124
prerelease : true
95
125
token : ${{ secrets.GITHUB_TOKEN }}
126
+
127
+ - name : Release App
128
+ uses : softprops/action-gh-release@v2
129
+ if : steps.tag_release.outputs.successful
130
+ with :
131
+ tag_name : ${{ steps.tag_release.outputs.version }}
132
+ name : ${{ steps.tag_release.outputs.version }}
96
133
body : |
97
134
${{ steps.changelog.outputs.compareurl }}
98
135
99
136
${{ steps.changelog.outputs.changelog }}
100
- - name : Release App to GitHub
101
- uses : " marvinpinto/action-automatic-releases@latest"
137
+ files : ${{ github.workspace }}/artifacts/**/*
138
+
139
+ - name : Distribute Binaries to R2
102
140
if : steps.tag_release.outputs.successful
141
+ uses : ryand56/r2-upload-action@master
103
142
with :
104
- prerelease : false
105
- automatic_release_tag : ${{ steps.tag_release.outputs.version }}
106
- repo_token : " ${{ secrets.GITHUB_TOKEN }}"
107
- files : |
108
- LICENSE
109
- out/make/**/*.{dmg,rpm,deb,Setup.exe}
110
-
111
- # - name: Distribute artifacts to R2
112
- # uses: ryand56/r2-upload-action@master
113
- # if: steps.tag_release.outputs.successful
114
- # with:
115
- # r2-account-id: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
116
- # r2-access-key-id: ${{ secrets.CLOUDFLARE_R2_ACCESS_KEY_ID }}
117
- # r2-secret-access-key: ${{ secrets.CLOUDFLARE_R2_SECRET_ACCESS_KEY }}
118
- # r2-bucket: ${{ secrets.CLOUDFLARE_ARTIFACTS_R2 }}
119
- # source-dir: out/make/
120
- # destination-dir: dockit
143
+ r2-account-id : ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
144
+ r2-access-key-id : ${{ secrets.CLOUDFLARE_R2_ACCESS_KEY_ID }}
145
+ r2-secret-access-key : ${{ secrets.CLOUDFLARE_R2_SECRET_ACCESS_KEY }}
146
+ r2-bucket : ${{ secrets.CLOUDFLARE_ARTIFACTS_R2 }}
147
+ source-dir : ${{ github.workspace }}/artifacts/
148
+ destination-dir : dockit
0 commit comments