-
Notifications
You must be signed in to change notification settings - Fork 12
134 lines (115 loc) · 4.32 KB
/
build.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
name: Build
on:
push:
branches:
- main
tags:
- '**'
pull_request:
branches:
- '**'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install GTK
run: sudo apt-get install libgtk-3-dev libjavascriptcoregtk-4.1-dev libwebkit2gtk-4.1-dev
- name: Cargo binstall
run: curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
- name: Clippy
run: cargo clippy --workspace --all-features --all-targets
- name: Unused dependencies
run: |
cargo binstall cargo-machete --locked -y
cargo machete
- name: Fmt
run: cargo fmt --all -- --files-with-diff --check
build:
name: Bundle ${{ matrix.platform_name }}
runs-on: ${{ matrix.platform }}
permissions:
contents: write
strategy:
fail-fast: false
matrix:
include:
- platform: 'macos-latest'
platform_name: MacOS ARM64
args: '--target aarch64-apple-darwin'
- platform: 'macos-latest'
platform_name: MacOS x86_64
args: '--target x86_64-apple-darwin'
- platform: 'ubuntu-22.04'
platform_name: Linux
args: ''
- platform: 'windows-latest'
platform_name: Windows
args: ''
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get release
if: startsWith(github.event.ref, 'refs/tags/v')
id: get_release
uses: actions/github-script@v6
with:
script: |
const tag = process.env.GITHUB_REF.split('/').pop();
const release = await github.rest.repos.getReleaseByTag({
owner: context.repo.owner,
repo: context.repo.repo,
tag: tag,
});
return release.data.id;
- name: Install x86_64-apple-darwin target
if: matrix.platform_name == 'MacOS x86_64'
run: rustup target add x86_64-apple-darwin
- name: Ubuntu dependencies
if: matrix.platform == 'ubuntu-22.04'
run: sudo apt-get install -y libgtk-3-dev libjavascriptcoregtk-4.1-dev libwebkit2gtk-4.1-dev
- name: Windows dependencies
if: matrix.platform == 'windows-latest'
run: |
choco install nasm
echo "C:\Program Files\NASM" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
- name: Install pnpm
uses: pnpm/action-setup@v4
- name: Frontend dependencies
run: pnpm install
- name: Save API key to file
if: ${{ matrix.platform == 'macos-latest' && startsWith(github.event.ref, 'refs/tags/v') }}
run: |
mkdir -p ~/private_keys
echo -n '${{ secrets.APPLE_API_SECRET_KEY }}' > ~/private_keys/AuthKey_${{ secrets.APPLE_API_KEY_ID }}.p8
- name: Apple signing variables
if: ${{ matrix.platform == 'macos-latest' && startsWith(github.event.ref, 'refs/tags/v') }}
run: |
echo "APPLE_CERTIFICATE=$APPLE_CERTIFICATE" >> $GITHUB_ENV
echo "APPLE_CERTIFICATE_PASSWORD=$APPLE_CERTIFICATE_PASSWORD" >> $GITHUB_ENV
echo "APPLE_API_ISSUER=$APPLE_API_ISSUER" >> $GITHUB_ENV
echo "APPLE_API_KEY=$APPLE_API_KEY" >> $GITHUB_ENV
echo "APPLE_API_KEY_PATH=$APPLE_API_KEY_PATH" >> $GITHUB_ENV
env:
APPLE_CERTIFICATE: ${{ secrets.APPLE_CERTIFICATE }}
APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }}
APPLE_API_ISSUER: ${{ secrets.APPLE_API_ISSUER }}
APPLE_API_KEY: ${{ secrets.APPLE_API_KEY_ID }}
APPLE_API_KEY_PATH: ~/private_keys/AuthKey_${{ secrets.APPLE_API_KEY_ID }}.p8
- name: Dry run
if: ${{ !startsWith(github.event.ref, 'refs/tags/v') }}
run: pnpm tauri build ${{ matrix.args }}
- name: Publish
uses: tauri-apps/tauri-action@v0
if: ${{ startsWith(github.event.ref, 'refs/tags/v') }}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CI: true
with:
releaseId: ${{ steps.get_release.outputs.result }}
args: ${{ matrix.args }}