forked from stevejcl/dwarfium
-
Notifications
You must be signed in to change notification settings - Fork 1
117 lines (101 loc) · 3.94 KB
/
build.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
name: 'build'
on:
workflow_dispatch:
jobs:
publish-tauri:
permissions:
contents: write
strategy:
fail-fast: false
matrix:
platform: [macos-latest, ubuntu-20.04, windows-latest]
runs-on: ${{ matrix.platform }}
steps:
- uses: actions/checkout@v4
- name: setup node
uses: actions/setup-node@v4
with:
node-version: 20
- name: install Rust stable
uses: dtolnay/rust-toolchain@stable
- name: install dependencies (ubuntu only)
if: matrix.platform == 'ubuntu-20.04'
run: |
sudo apt-get update
sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf
- name: Install dependencies
run: npm install
- name: Build
if: matrix.platform == 'ubuntu-20.04'
run: |
npm run build
cp -r dist DwarfStellariumGoto
echo "python3 -m http.server" > DwarfStellariumGoto/start_server.bat
zip -r DwarfStellariumGoto.zip DwarfStellariumGoto
- name: Get version number from package.json
id: get_version
run: echo "::set-output name=version::$(node -e 'console.log(require("./package.json").version)')"
- name: Create artifact DwarfStellariumGoto
uses: actions/upload-artifact@v4
with:
name: DwarfStellariumGoto-${{ steps.get_version.outputs.version }}
path: DwarfStellariumGoto.zip
- name: install frontend dependencies
run: npm install
- uses: tauri-apps/tauri-action@v0
id: tauri_release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAURI_PRIVATE_KEY: ${{ secrets.TAURI_PRIVATE_KEY }}
TAURI_KEY_PASSWORD: ${{ secrets.TAURI_KEY_PASSWORD }}
with:
tagName: app-v${{ steps.get_version.outputs.version }}
releaseName: 'v${{ steps.get_version.outputs.version }}-DesktopAPP'
releaseBody: 'See the assets to download this version and install.'
releaseDraft: false
prerelease: false
includeUpdaterJson: true
updaterJsonKeepUniversal: false
- name: Release with ncipollo/release-action
if: matrix.platform == 'ubuntu-20.04'
id: release
uses: ncipollo/release-action@v1
with:
artifacts: DwarfStellariumGoto.zip
token: ${{ secrets.GITHUB_TOKEN }}
generateReleaseNotes: true
skipIfReleaseExists: true
tag: v${{ steps.get_version.outputs.version }}
update-gist:
runs-on: ubuntu-latest
needs: [publish-tauri]
steps:
- name: Get latest release
id: get_latest_release
uses: actions/github-script@v4
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
const { owner, repo } = context.repo;
const response = await github.repos.getLatestRelease({ owner, repo });
return response.data;
- name: Get latest release content
id: get_latest_release_content
run: |
latest_release_assets=$(curl -s "${{ steps.get_latest_release.outputs.url }}/assets")
latest_release_json=$(echo "$latest_release_assets" | jq '[.[] | {name: .name, download_url: .browser_download_url}]')
echo "::set-output name=latest_release_json::$latest_release_json"
- name: Create updater.json
run: |
current_date=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
latest_release_json=${{ steps.get_latest_release_content.outputs.latest_release_json }}
echo "$latest_release_json" > update.json
- name: Update Gist
uses: exuanbo/actions-deploy-gist@v1
with:
token: ${{ secrets.TOKEN }}
gist_id: ${{ secrets.GIST_ID }}
file_path: update.json
file_type: text
gist_description: "Updater JSON for the latest release"
gist_file_name: "update.json"