-
Notifications
You must be signed in to change notification settings - Fork 0
131 lines (111 loc) · 3.44 KB
/
Copy pathrelease.yml
File metadata and controls
131 lines (111 loc) · 3.44 KB
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
name: Release
on:
push:
tags:
- 'v*'
workflow_dispatch:
permissions:
contents: write
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
- os: macos-latest
label: macos
- os: ubuntu-22.04
label: linux
- os: windows-latest
label: windows
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
with:
path: matc-ui
- uses: actions/checkout@v4
with:
repository: tom-code/rust-matc
path: rust-matc
- uses: actions/setup-node@v4
with:
node-version: 20
cache: npm
cache-dependency-path: matc-ui/package-lock.json
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
with:
workspaces: matc-ui/src-tauri -> target
- name: Install Linux system deps
if: matrix.os == 'ubuntu-22.04'
run: >
sudo apt-get update && sudo apt-get install -y
libwebkit2gtk-4.1-dev
libssl-dev
libayatana-appindicator3-dev
librsvg2-dev
libdbus-1-dev
libudev-dev
pkg-config
build-essential
- name: npm install
working-directory: matc-ui
run: npm ci
- name: Build (macOS)
if: matrix.os == 'macos-latest'
working-directory: matc-ui
env:
APPLE_SIGNING_IDENTITY: "-"
run: npm run tauri build
- name: Build (Linux / Windows)
if: matrix.os != 'macos-latest'
working-directory: matc-ui
run: npm run tauri build
- name: Create portable zip (macOS)
if: matrix.os == 'macos-latest'
shell: bash
run: |
VERSION="${GITHUB_REF_NAME#v}"
cd "matc-ui/src-tauri/target/release/bundle/macos"
zip -r "${GITHUB_WORKSPACE}/matc-ui-${VERSION}-macos-portable.zip" "matc-ui.app"
- name: Create portable zip (Linux)
if: matrix.os == 'ubuntu-22.04'
shell: bash
run: |
VERSION="${GITHUB_REF_NAME#v}"
zip "matc-ui-${VERSION}-linux-portable.zip" matc-ui/src-tauri/target/release/matc-ui
- name: Create portable zip (Windows)
if: matrix.os == 'windows-latest'
shell: pwsh
run: |
$version = $env:GITHUB_REF_NAME -replace '^v', ''
Compress-Archive `
-Path "matc-ui\src-tauri\target\release\matc-ui.exe" `
-DestinationPath "matc-ui-${version}-windows-portable.zip"
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: matc-ui-${{ matrix.label }}
if-no-files-found: warn
path: |
matc-ui/src-tauri/target/release/bundle/**/*.dmg
matc-ui/src-tauri/target/release/bundle/**/*.deb
matc-ui/src-tauri/target/release/bundle/**/*.AppImage
matc-ui/src-tauri/target/release/bundle/**/*.msi
matc-ui/src-tauri/target/release/bundle/**/*-setup.exe
*-portable.zip
release:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
path: artifacts
merge-multiple: true
- name: Create draft GitHub release
uses: softprops/action-gh-release@v2
with:
draft: true
tag_name: ${{ github.ref_name }}
name: ${{ github.ref_name }}
files: artifacts/**