forked from
tokono.ma/diffuse
A music player that connects to your cloud/distributed storage.
1name: Build & create release
2
3on:
4 workflow_dispatch:
5 inputs:
6
7jobs:
8 #########
9 # BUILD #
10 #########
11 build:
12 runs-on: ubuntu-latest
13
14 steps:
15 - uses: actions/checkout@v4
16 - uses: actions/setup-node@v4
17
18 # Tasks
19 - run: npm install
20 - run: npx just build-prod
21
22 # Upload artifacts
23 - uses: actions/upload-artifact@v4
24 with:
25 name: dist
26 path: dist/
27
28 ##################
29 # CREATE RELEASE #
30 ##################
31 create-release:
32 needs: build
33 runs-on: ubuntu-latest
34
35 outputs:
36 RELEASE_UPLOAD_ID: ${{ steps.create_release.outputs.id }}
37 TAG_NAME: ${{ steps.package-version.outputs.current-version }}
38
39 steps:
40 - uses: actions/checkout@v4
41 - run: mkdir compressed
42
43 # Download artifacts
44 - uses: actions/download-artifact@v4
45 with:
46 name: dist
47 path: dist/
48
49 # Create zip
50 - uses: montudor/action-zip@v1
51 with:
52 args: zip -qq -r ./compressed/diffuse-web.zip ./dist
53
54 # Create tar.gz
55 - uses: master-atul/tar-action@v1.1.0
56 with:
57 command: c
58 cwd: .
59 files: ./dist
60 outPath: compressed/diffuse-web.tar.gz
61
62 # Get Diffuse's version number
63 - id: package-version
64 uses: martinbeentjes/npm-get-version-action@v1.3.1
65
66 # Create release
67 - uses: softprops/action-gh-release@v1
68 id: create_release
69 with:
70 token: ${{ secrets.GITHUB_TOKEN }}
71
72 tag_name: "${{ steps.package-version.outputs.current-version }}"
73 name: "v${{ steps.package-version.outputs.current-version }}"
74 body: "See the assets to download this version and install."
75 draft: true
76
77 files: |
78 compressed/diffuse-web.zip
79 compressed/diffuse-web.tar.gz
80
81 #########
82 # TAURI #
83 #########
84 tauri:
85 needs: create-release
86
87 strategy:
88 fail-fast: false
89 matrix:
90 os: [macos-15, macos-13, ubuntu-latest, windows-latest]
91
92 runs-on: ${{ matrix.os }}
93
94 steps:
95 - uses: actions/checkout@v4
96 - uses: actions/setup-node@v4
97
98 # Install dependencies
99 - run: npm install
100
101 # OS
102 - name: install linux dependencies
103 if: matrix.os == 'ubuntu-latest'
104 run: |
105 sudo apt-get update
106 sudo apt-get install -y libgtk-4-1 libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev libsoup-3.0
107
108 # Rust
109 - uses: moonrepo/setup-rust@v1
110
111 # Download artifacts
112 - uses: actions/download-artifact@v4
113 with:
114 name: dist
115 path: dist/
116
117 # Make a build
118 - run: npx tauri build
119
120 # Upload artifacts
121 - uses: softprops/action-gh-release@v1
122 with:
123 token: ${{ secrets.GITHUB_TOKEN }}
124
125 tag_name: "${{ needs.create-release.outputs.TAG_NAME }}"
126 draft: true
127
128 files: |
129 src-tauri/target/release/bundle/appimage/*.AppImage
130 src-tauri/target/release/bundle/deb/*.deb
131 src-tauri/target/release/bundle/dmg/*.dmg
132 src-tauri/target/release/bundle/msi/*.msi
133 src-tauri/target/release/bundle/nsis/*.exe
134 src-tauri/target/release/bundle/rpm/*.rpm