Skip to content

Commit 56e9f9f

Browse files
authored
Create main.yml
1 parent 63e862a commit 56e9f9f

File tree

1 file changed

+98
-0
lines changed

1 file changed

+98
-0
lines changed

.github/workflows/main.yml

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
name: Release App
2+
3+
on:
4+
workflow_dispatch:
5+
release:
6+
types: [published]
7+
8+
jobs:
9+
create-release:
10+
permissions:
11+
contents: write
12+
runs-on: ubuntu-latest
13+
outputs:
14+
release_id: ${{ steps.create-release.outputs.result }}
15+
16+
steps:
17+
- uses: actions/checkout@v3
18+
- name: setup node
19+
uses: actions/setup-node@v3
20+
with:
21+
node-version: 18
22+
- name: get version
23+
run: echo "PACKAGE_VERSION=$(node -p "require('./src-tauri/tauri.conf.json').package.version")" >> $GITHUB_ENV
24+
- name: create release
25+
id: create-release
26+
uses: actions/github-script@v6
27+
with:
28+
script: |
29+
const { data } = await github.rest.repos.getLatestRelease({
30+
owner: context.repo.owner,
31+
repo: context.repo.repo,
32+
})
33+
return data.id
34+
build-tauri:
35+
needs: create-release
36+
permissions:
37+
contents: write
38+
strategy:
39+
fail-fast: false
40+
matrix:
41+
config:
42+
- os: ubuntu-latest
43+
arch: i686
44+
rust_target: i686-unknown-linux-gnu
45+
- os: windows-latest
46+
arch: i686
47+
rust_target: i686-pc-windows-msvc
48+
49+
runs-on: ${{ matrix.config.os }}
50+
steps:
51+
- uses: actions/checkout@v3
52+
- name: setup node
53+
uses: actions/setup-node@v3
54+
with:
55+
node-version: 18
56+
- name: install Rust stable
57+
uses: dtolnay/rust-toolchain@stable
58+
with:
59+
targets: ${{ matrix.config.rust_target }}
60+
- uses: Swatinem/rust-cache@v2
61+
with:
62+
key: ${{ matrix.config.rust_target }}
63+
- name: install dependencies (ubuntu only)
64+
if: matrix.config.os == 'ubuntu-latest'
65+
run: |
66+
sudo apt-get update
67+
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
68+
- name: install frontend dependencies
69+
run: yarn install # change this to npm or pnpm depending on which one you use
70+
- uses: tauri-apps/tauri-action@v0
71+
env:
72+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
73+
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
74+
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
75+
with:
76+
releaseId: ${{ needs.create-release.outputs.release_id }}
77+
78+
publish-release:
79+
permissions:
80+
contents: write
81+
runs-on: ubuntu-latest
82+
needs: [create-release, build-tauri]
83+
84+
steps:
85+
- name: publish release
86+
id: publish-release
87+
uses: actions/github-script@v6
88+
env:
89+
release_id: ${{ needs.create-release.outputs.release_id }}
90+
with:
91+
script: |
92+
github.rest.repos.updateRelease({
93+
owner: context.repo.owner,
94+
repo: context.repo.repo,
95+
release_id: process.env.release_id,
96+
draft: false,
97+
prerelease: true
98+
})

0 commit comments

Comments
 (0)