-
Notifications
You must be signed in to change notification settings - Fork 1
135 lines (124 loc) · 4.84 KB
/
main.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
name: "ci"
on:
push:
branches:
- main
permissions:
contents: read # for checkout
jobs:
get-next-release:
runs-on: ubuntu-latest
permissions:
contents: write # to be able to publish a GitHub release
issues: write # to be able to comment on released issues
pull-requests: write # to be able to comment on released pull requests
id-token: write # to enable use of OIDC for npm provenance
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 20
- name: Install dependencies
run: npm install @actions/core
- name: Release
id: get-next-release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx semantic-release --dry-run
outputs:
next-release-published: ${{ steps.get-next-release.outputs.next-release-published }}
next-release-version: ${{ steps.get-next-release.outputs.next-release-version }}
next-release-git-tag: ${{ steps.get-next-release.outputs.next-release-git-tag }}
next-release-notes: ${{ steps.get-next-release.outputs.next-release-notes }}
build:
needs:
- get-next-release
if: needs.get-next-release.outputs.next-release-published == 'true'
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: "macos-latest" # for Arm based macs (M1 and above).
args: "--target aarch64-apple-darwin"
- platform: "macos-latest" # for Intel based macs.
args: "--target x86_64-apple-darwin"
- platform: "ubuntu-20.04" # for Tauri v1 you could replace this with ubuntu-20.04.
args: ""
- platform: "windows-latest"
args: ""
runs-on: ${{ matrix.platform }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Rust setup
uses: dtolnay/rust-toolchain@stable
with:
# Those targets are only used on macos runners so it's in an `if` to slightly speed up windows and linux builds.
targets: ${{ matrix.platform == 'macos-latest' && 'aarch64-apple-darwin,x86_64-apple-darwin' || '' }}
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-20.04' # This must match the platform value defined above.
run: |
sudo apt-get update
sudo apt-get install -y libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
# webkitgtk 4.0 is for Tauri v1 - webkitgtk 4.1 is for Tauri v2.
# You can remove the one that doesn't apply to your app to speed up the workflow a bit.
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: "./src-tauri -> target"
- name: Sync node version and setup cache
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm" # Set this to npm, yarn or pnpm.
- name: Install frontend dependencies
# If you don't have `beforeBuildCommand` configured you may want to build your frontend here too.
run: npm install # Change this to npm, yarn or pnpm.
- name: Bump tauri.config.json version
run: npm run bump-tauri-version ${{ needs.get-next-release.outputs.next-release-version }}
- name: Push commit
run: |
git config user.name "github-actions"
git config user.email "[email protected]"
git add src-tauri/tauri.conf.json
git commit -m "Bump version [skip ci]"
git push --dry-run
- name: Build the app
id: tauri-action
uses: tauri-apps/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
with:
tagName: ${{ needs.get-next-release.outputs.next-release-git-tag }}
releaseName: ${{ needs.get-next-release.outputs.next-release-version }}
releaseBody: ${{ needs.get-next-release.outputs.next-release-notes }}
releaseDraft: false
prerelease: false
args: ${{ matrix.args }}
push-changes:
needs:
- get-next-release
- build
if: success()
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Bump tauri.config.json version
run: npm run bump-tauri-version ${{ needs.get-next-release.outputs.next-release-version }}
- name: Push commit
run: |
git config user.name "github-actions"
git config user.email "[email protected]"
git add src-tauri/tauri.conf.json
git commit -m "Bump version [skip ci]"
git push