-
Notifications
You must be signed in to change notification settings - Fork 84
160 lines (135 loc) · 4.49 KB
/
publish.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
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
name: Publish Surrealist
on:
workflow_dispatch:
push:
tags:
- 'v**'
permissions: write-all
jobs:
version:
name: Extract version
runs-on: ubuntu-latest
outputs:
version: ${{ steps.extract_version.outputs.version }}
steps:
- name: Checkout code
uses: actions/checkout@master
- name: Extract version
id: extract_version
uses: Saionaro/[email protected]
embed:
name: Generate embed files
runs-on: ubuntu-latest
needs: version
strategy:
matrix:
node-version: [ 18 ]
steps:
- name: Code checkout
uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-embed -> target'
- name: Generate embed
run: |
npm i -g pnpm
rustup target add wasm32-unknown-unknown
cargo install wasm-bindgen-cli
pnpm embed:build
- name: Save artifacts
uses: actions/upload-artifact@master
with:
name: generated-embed
path: src/generated
package:
name: Package
runs-on: ${{ matrix.platform }}
needs: embed
strategy:
fail-fast: false
matrix:
node-version: [ 18 ]
platform: [ macos-latest, ubuntu-20.04, windows-latest ]
steps:
- name: Information
run: echo "Building Surrealist version ${{ needs.version.outputs.version }} for ${{ matrix.platform }}"
- name: Code checkout
uses: actions/checkout@v3
- name: Setup node
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Rust cache
uses: swatinem/rust-cache@v2
with:
workspaces: './src-tauri -> target'
- name: Linux dependencies
if: matrix.platform == 'ubuntu-20.04'
run: |
sudo apt update
sudo apt install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev
- name: Frontend dependencies
run: |
npm i -g pnpm
pnpm install --no-frozen-lockfile
- name: Download embed
uses: actions/download-artifact@master
with:
name: generated-embed
path: src/generated
- name: Build application
run: pnpm tauri build
- name: Upload web app
uses: actions/upload-pages-artifact@v1
if: matrix.platform == 'ubuntu-20.04'
with:
path: ./dist
- name: Upload bundles
uses: actions/upload-artifact@v2
with:
name: bundles-${{ matrix.platform }}
path: ./src-tauri/target/release/bundle
release:
name: Release binaries
runs-on: ubuntu-20.04
needs:
- version
- package
steps:
- name: Download artifacts
uses: actions/download-artifact@v3
- name: Debug
run: |
sudo apt install tree
tree
- name: Rename binaries
run: |
mv ./bundles-macos-latest/dmg/Surrealist_${{ needs.version.outputs.version }}_x64.dmg ./surrealist-${{ github.ref_name }}-darwin.dmg
mv ./bundles-ubuntu-20.04/appimage/surrealist_${{ needs.version.outputs.version }}_amd64.AppImage ./surrealist-${{ github.ref_name }}-linux.AppImage
mv ./bundles-ubuntu-20.04/deb/surrealist_${{ needs.version.outputs.version }}_amd64.deb ./surrealist-${{ github.ref_name }}-linux.deb
mv ./bundles-windows-latest/msi/Surrealist_${{ needs.version.outputs.version }}_x64_en-US.msi ./surrealist-${{ github.ref_name }}-windows.msi
- name: Draft release
uses: marvinpinto/action-automatic-releases@latest
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
automatic_release_tag: "${{ github.ref_name }}"
prerelease: false
draft: true
title: "${{ github.ref_name }}"
files: |
./surrealist-${{ github.ref_name }}-darwin.dmg
./surrealist-${{ github.ref_name }}-linux.AppImage
./surrealist-${{ github.ref_name }}-linux.deb
./surrealist-${{ github.ref_name }}-windows.msi
- name: Publish web app
uses: actions/deploy-pages@v1
if: "!contains(github.ref, '-')"