Skip to content

Commit 7d32a62

Browse files
feat(posts): add "Run Tauri in GitHub Actions"
Post: 2026-04-08-tauri-github-action.md
1 parent 696d169 commit 7d32a62

File tree

1 file changed

+132
-0
lines changed

1 file changed

+132
-0
lines changed
Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
---
2+
layout: post
3+
title: Run Tauri in GitHub Actions
4+
date: 2026-04-08 15:57:29
5+
excerpt: How to bundle web apps into desktop native apps with Tauri using GitHub Actions.
6+
categories: tauri github actions
7+
---
8+
9+
This post goes over how to bundle web apps into desktop native apps with [Tauri](https://tauri.app/) using [GitHub Actions](https://github.com/features/actions).
10+
11+
## Prerequisites
12+
13+
Let's say you have a web app:
14+
15+
```sh
16+
echo "<h1>Hello App</h1>" > dist/index.html
17+
```
18+
19+
## Action
20+
21+
Use [`remarkablemark/tauri-action`](https://github.com/remarkablemark/tauri-action) to bundle your web app into a desktop app.
22+
23+
### macOS
24+
25+
Build a macOS app with Tauri:
26+
27+
{% raw %}
28+
29+
```yml
30+
# .github/workflows/build.yml
31+
on: push
32+
33+
jobs:
34+
build:
35+
runs-on: macos-latest
36+
37+
steps:
38+
- name: Build app
39+
uses: remarkablemark/tauri-action@v1
40+
id: tauri
41+
with:
42+
app-name: My App
43+
env:
44+
APPLE_SIGNING_IDENTITY: '-'
45+
46+
- name: Upload app
47+
uses: actions/upload-artifact@v6
48+
with:
49+
name: macOS
50+
path: ${{ steps.tauri.outputs.bundle-path }}
51+
```
52+
53+
{% endraw %}
54+
55+
If you download and unzip the bundle, you'll see the following:
56+
57+
```
58+
├── dmg
59+
│   ├── bundle_dmg.sh
60+
│   ├── icon.icns
61+
│   └── My App_0.1.0_aarch64.dmg
62+
├── macos
63+
│   └── My App.app
64+
│   └── Contents
65+
│   ├── Info.plist
66+
│   ├── MacOS
67+
│   │   └── app
68+
│   └── Resources
69+
│   └── icon.icns
70+
└── share
71+
└── create-dmg
72+
└── support
73+
├── eula-resources-template.xml
74+
└── template.applescript
75+
```
76+
77+
### All
78+
79+
Build a desktop app on all platforms with Tauri:
80+
81+
{% raw %}
82+
83+
```yml
84+
# .github/workflows/build.yml
85+
on: push
86+
87+
jobs:
88+
build:
89+
runs-on: ${{ matrix.os }}
90+
strategy:
91+
matrix:
92+
os: [ubuntu-latest, macos-latest, windows-latest]
93+
94+
steps:
95+
- name: Build app
96+
uses: remarkablemark/tauri-action@v1
97+
id: tauri
98+
with:
99+
app-name: My App
100+
101+
- name: Upload app
102+
uses: actions/upload-artifact@v6
103+
with:
104+
name: ${{ runner.os }}
105+
path: ${{ steps.tauri.outputs.bundle-path }}
106+
```
107+
108+
{% endraw %}
109+
110+
This creates unique binaries/executables for Linux, macOS, and Windows.
111+
112+
### Inputs
113+
114+
You can configure the Tauri action by passing [inputs](https://github.com/remarkablemark/tauri-action#inputs). For example:
115+
116+
{% raw %}
117+
118+
```yml
119+
- name: Build app
120+
uses: remarkablemark/tauri-action@v1
121+
id: tauri
122+
with:
123+
app-name: My App
124+
app-version: 1.2.3
125+
window-width: 800
126+
window-height: 600
127+
frontend-dist: ../dist
128+
before-build-command: npm run build
129+
icon-path: app-icon.png
130+
```
131+
132+
{% endraw %}

0 commit comments

Comments
 (0)