Skip to content

Commit c23a149

Browse files
committed
Add GitHub Actions workflow for automated builds
1 parent f9fd13a commit c23a149

1 file changed

Lines changed: 97 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
name: 'Build and Release'
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
workflow_dispatch:
8+
9+
jobs:
10+
create-release:
11+
permissions:
12+
contents: write
13+
runs-on: ubuntu-20.04
14+
outputs:
15+
release_id: ${{ steps.create-release.outputs.result }}
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
- name: setup node
20+
uses: actions/setup-node@v4
21+
with:
22+
node-version: 20
23+
- name: get version
24+
run: echo "PACKAGE_VERSION=$(node -p "require('./package.json').version")" >> $GITHUB_ENV
25+
- name: create release
26+
id: create-release
27+
uses: actions/github-script@v6
28+
with:
29+
script: |
30+
const { data } = await github.rest.repos.createRelease({
31+
owner: context.repo.owner,
32+
repo: context.repo.repo,
33+
tag_name: `v${process.env.PACKAGE_VERSION}`,
34+
name: `Stage Timer Pro v${process.env.PACKAGE_VERSION}`,
35+
body: 'Release generated by GitHub Actions',
36+
draft: true,
37+
prerelease: false
38+
})
39+
return data.id
40+
41+
build-tauri:
42+
needs: create-release
43+
permissions:
44+
contents: write
45+
strategy:
46+
fail-fast: false
47+
matrix:
48+
platform: [macos-latest, windows-latest]
49+
50+
runs-on: ${{ matrix.platform }}
51+
steps:
52+
- uses: actions/checkout@v4
53+
54+
- name: setup node
55+
uses: actions/setup-node@v4
56+
with:
57+
node-version: 20
58+
59+
- name: install Rust stable
60+
uses: dtolnay/rust-toolchain@stable
61+
62+
- name: install dependencies (ubuntu only)
63+
if: matrix.platform == 'ubuntu-20.04'
64+
run: |
65+
sudo apt-get update
66+
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
67+
68+
- name: install frontend dependencies
69+
run: npm install
70+
71+
- uses: tauri-apps/tauri-action@v0
72+
env:
73+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
74+
with:
75+
releaseId: ${{ needs.create-release.outputs.release_id }}
76+
77+
publish-release:
78+
permissions:
79+
contents: write
80+
runs-on: ubuntu-20.04
81+
needs: [create-release, build-tauri]
82+
83+
steps:
84+
- name: publish release
85+
id: publish-release
86+
uses: actions/github-script@v6
87+
env:
88+
release_id: ${{ needs.create-release.outputs.release_id }}
89+
with:
90+
script: |
91+
github.rest.repos.updateRelease({
92+
owner: context.repo.owner,
93+
repo: context.repo.repo,
94+
release_id: process.env.release_id,
95+
draft: false,
96+
prerelease: false
97+
})

0 commit comments

Comments
 (0)