1+ on :
2+ release :
3+ types : [created]
4+ # on:
5+ # push:
6+ # branches: ["master"]
7+ # pull_request:
8+ # # The branches below must be a subset of the branches above
9+ # branches: ["master"]
10+
11+ jobs :
12+ release :
13+ strategy :
14+ fail-fast : false
15+ matrix :
16+ platform : [macos-latest, ubuntu-20.04, windows-latest]
17+ runs-on : ${{ matrix.platform }}
18+
19+ steps :
20+ - uses : actions/checkout@v3
21+ - name : setup node
22+ uses : actions/setup-node@v3
23+ with :
24+ node-version : 16
25+ - uses : actions/cache@v3
26+ with :
27+ path : |
28+ ~/.cargo/bin/
29+ ~/.cargo/registry/index/
30+ ~/.cargo/registry/cache/
31+ ~/.cargo/git/db/
32+ target/
33+ key : ${{ matrix.platform }}-cargo-${{ hashFiles('**/Cargo.lock') }}
34+ - name : Install dependencies (mac) only)
35+ if : matrix.platform == 'macos-latest'
36+ run : brew install protobuf
37+ - name : Install dependencies (ubuntu only)
38+ if : matrix.platform == 'ubuntu-20.04'
39+ run : |
40+ sudo apt-get update
41+ sudo apt-get install -y libgtk-3-dev libwebkit2gtk-4.0-dev libappindicator3-dev librsvg2-dev patchelf libasound2-dev protobuf-compiler
42+ - name : Install dependencies (windows only)
43+ if : matrix.platform == 'windows-latest'
44+ run : |
45+ choco install protoc
46+ choco install checksum
47+ - name : Install Node Modules
48+ run : |
49+ cd webui/musicplayer
50+ npm install -g yarn
51+ yarn install --network-timeout 1000000000
52+ - name : Install Rust toolchain
53+ uses : actions-rs/toolchain@v1
54+ with :
55+ toolchain : stable
56+ override : true
57+ - name : Install aarch64-apple-darwin toolchain
58+ if : matrix.platform == 'macos-latest'
59+ run : rustup target add aarch64-apple-darwin
60+ - name : Build App
61+ run : |
62+ cd webui/musicplayer
63+ npx @tauri-apps/cli build
64+ - name : Build App (macos arch64-apple-darwin)
65+ if : matrix.platform == 'macos-latest'
66+ run : |
67+ cd webui/musicplayer
68+ npx @tauri-apps/cli build --target aarch64-apple-darwin
69+ - name : List files
70+ if : matrix.platform == 'ubuntu-20.04' || matrix.platform == 'macos-latest'
71+ run : |
72+ ls target/release/bundle/*
73+ - name : List files (windows)
74+ if : matrix.platform == 'windows-latest'
75+ run : |
76+ dir target\release\bundle
77+ dir target\release\bundle\*
78+ - name : Set env
79+ if : matrix.platform == 'ubuntu-20.04' || matrix.platform == 'macos-latest'
80+ run : echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
81+ - name : Create archive (macos)
82+ if : matrix.platform == 'macos-latest'
83+ run : |
84+ cd target/release/bundle
85+ rm -f music-player-desktop_${{ env.RELEASE_VERSION }}_x86_64-apple-darwin.tar.gz
86+ tar -czvf music-player-desktop_${{ env.RELEASE_VERSION }}_x86_64-apple-darwin.tar.gz "macos/Music Player.app"
87+ shasum -a 256 music-player-desktop_${{ env.RELEASE_VERSION }}_x86_64-apple-darwin.tar.gz > music-player-desktop_${{ env.RELEASE_VERSION }}_x86_64-apple-darwin.tar.gz.sha256
88+ rm -f dmg/Music_Player_${{ env.RELEASE_VERSION }}_x64.dmg
89+ mv dmg/Music\ Player*_x64.dmg dmg/Music_Player_${{ env.RELEASE_VERSION }}_x64.dmg
90+ shasum -a 256 dmg/Music_Player_${{ env.RELEASE_VERSION }}_x64.dmg > dmg/Music_Player_${{ env.RELEASE_VERSION }}_x64.dmg.sha256
91+ cd ../../aarch64-apple-darwin/release/bundle
92+ rm -f music-player-desktop_${{ env.RELEASE_VERSION }}_aarch64-apple-darwin.tar.gz
93+ tar -czvf music-player-desktop_${{ env.RELEASE_VERSION }}_aarch64-apple-darwin.tar.gz "macos/Music Player.app"
94+ shasum -a 256 music-player-desktop_${{ env.RELEASE_VERSION }}_aarch64-apple-darwin.tar.gz > music-player-desktop_${{ env.RELEASE_VERSION }}_aarch64-apple-darwin.tar.gz.sha256
95+ rm -f dmg/Music_Player_${{ env.RELEASE_VERSION }}_aarch64.dmg
96+ mv dmg/Music\ Player*_aarch64.dmg dmg/Music_Player_${{ env.RELEASE_VERSION }}_aarch64.dmg
97+ shasum -a 256 dmg/Music_Player_${{ env.RELEASE_VERSION }}_aarch64.dmg > dmg/Music_Player_${{ env.RELEASE_VERSION }}_aarch64.dmg.sha256
98+ - name : Releasing artifacts (macos)
99+ if : matrix.platform == 'macos-latest'
100+ uses : softprops/action-gh-release@v1
101+ with :
102+ files : |
103+ target/release/bundle/music-player-desktop_${{ env.RELEASE_VERSION }}_x86_64-apple-darwin.tar.gz
104+ target/release/bundle/music-player-desktop_${{ env.RELEASE_VERSION }}_x86_64-apple-darwin.tar.gz.sha256
105+ target/release/bundle/dmg/Music_Player_${{ env.RELEASE_VERSION }}_x64.dmg
106+ target/release/bundle/dmg/Music_Player_${{ env.RELEASE_VERSION }}_x64.dmg.sha256
107+ target/aarch64-apple-darwin/release/bundle/music-player-desktop_${{ env.RELEASE_VERSION }}_aarch64-apple-darwin.tar.gz
108+ target/aarch64-apple-darwin/release/bundle/music-player-desktop_${{ env.RELEASE_VERSION }}_aarch64-apple-darwin.tar.gz.sha256
109+ target/aarch64-apple-darwin/release/bundle/dmg/Music_Player_${{ env.RELEASE_VERSION }}_aarch64.dmg
110+ target/aarch64-apple-darwin/release/bundle/dmg/Music_Player_${{ env.RELEASE_VERSION }}_aarch64.dmg.sha256
111+ - name : Hash files (ubuntu)
112+ if : matrix.platform == 'ubuntu-20.04'
113+ run : |
114+ rm -f target/release/bundle/deb/music-player_${{ env.RELEASE_VERSION }}_amd64.deb
115+ rm -f target/release/bundle/appimage/music-player_${{ env.RELEASE_VERSION }}_amd64.AppImage
116+ mv target/release/bundle/appimage/music-player*.AppImage target/release/bundle/appimage/music-player_${{ env.RELEASE_VERSION }}_amd64.AppImage
117+ mv target/release/bundle/deb/music-player*.deb target/release/bundle/deb/music-player_${{ env.RELEASE_VERSION }}_amd64.deb
118+ shasum -a 256 target/release/bundle/appimage/music-player_${{ env.RELEASE_VERSION }}_amd64.AppImage > target/release/bundle/appimage/music-player_${{ env.RELEASE_VERSION }}_amd64.AppImage.sha256
119+ shasum -a 256 target/release/bundle/deb/music-player_${{ env.RELEASE_VERSION }}_amd64.deb > target/release/bundle/deb/music-player_${{ env.RELEASE_VERSION }}_amd64.deb.sha256
120+ - name : Releasing artifacts (ubuntu)
121+ if : matrix.platform == 'ubuntu-20.04'
122+ uses : softprops/action-gh-release@v1
123+ with :
124+ files : |
125+ target/release/bundle/appimage/music-player_${{ env.RELEASE_VERSION }}_amd64.AppImage
126+ target/release/bundle/appimage/music-player_${{ env.RELEASE_VERSION }}_amd64.AppImage.sha256
127+ target/release/bundle/deb/music-player_${{ env.RELEASE_VERSION }}_amd64.deb
128+ target/release/bundle/deb/music-player_${{ env.RELEASE_VERSION }}_amd64.deb.sha256
129+ - name : Hash files (windows)
130+ if : matrix.platform == 'windows-latest'
131+ run : |
132+ Remove-Item -Force target/release/bundle/msi/Music_Player_x64_en-US.msi
133+ move target/release/bundle/msi/Music*.msi target/release/bundle/msi/Music_Player_x64_en-US.msi
134+ checksum -t sha256 -f="target/release/bundle/msi/Music_Player_x64_en-US.msi" > target/release/bundle/msi/Music_Player_x64_en-US.msi.sha256
135+ - name : Releasing artifacts (windows)
136+ if : matrix.platform == 'windows-latest'
137+ uses : softprops/action-gh-release@v1
138+ with :
139+ files : |
140+ target/release/bundle/msi/Music_Player_x64_en-US.msi
141+ target/release/bundle/msi/Music_Player_x64_en-US.msi.sha256
142+
0 commit comments