Skip to content

Commit e3ddd01

Browse files
authored
Merge pull request #21 from ByteRoast/dev/main
feat: linux builds, ci improvements
2 parents 25d7ec8 + 712c4c4 commit e3ddd01

File tree

20 files changed

+553
-52
lines changed

20 files changed

+553
-52
lines changed

.github/workflows/build_tests.yml

Lines changed: 72 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,62 @@ jobs:
5757
- name: Build Android APK (debug)
5858
run: flutter build apk --debug --no-shrink
5959

60+
- name: Upload Android APK artifact
61+
uses: actions/upload-artifact@v4
62+
with:
63+
name: android-apk-debug
64+
path: build/app/outputs/flutter-apk/app-debug.apk
65+
retention-days: 7
66+
67+
build-linux:
68+
name: Build Linux
69+
runs-on: ubuntu-latest
70+
needs: analyze
71+
72+
steps:
73+
- name: Checkout code
74+
uses: actions/checkout@v6
75+
76+
- name: Setup Flutter
77+
uses: subosito/flutter-action@v2
78+
with:
79+
flutter-version: "3.38.5"
80+
channel: "stable"
81+
cache: true
82+
83+
- name: Install Linux build dependencies
84+
run: |
85+
sudo apt-get update
86+
sudo apt-get install -y \
87+
clang \
88+
cmake \
89+
ninja-build \
90+
pkg-config \
91+
libgtk-3-dev \
92+
liblzma-dev \
93+
libstdc++-12-dev \
94+
rpm \
95+
dpkg-dev
96+
97+
- name: Build Linux installers
98+
run: |
99+
chmod +x ./installer/linux/build.sh
100+
./installer/linux/build.sh
101+
102+
- name: Upload Linux .deb artifact
103+
uses: actions/upload-artifact@v4
104+
with:
105+
name: linux-deb-installer
106+
path: dist/linux/x64/*.deb
107+
retention-days: 7
108+
109+
- name: Upload Linux .rpm artifact
110+
uses: actions/upload-artifact@v4
111+
with:
112+
name: linux-rpm-installer
113+
path: dist/linux/x64/*.rpm
114+
retention-days: 7
115+
60116
build-web:
61117
name: Build Web
62118
runs-on: ubuntu-latest
@@ -102,22 +158,33 @@ jobs:
102158
channel: "stable"
103159
cache: true
104160

105-
- name: Get dependencies
106-
run: flutter pub get
161+
- name: Install WiX Toolset
162+
run: |
163+
choco install wixtoolset -y
164+
$env:PATH += ";C:\Program Files (x86)\WiX Toolset v3.14\bin"
165+
echo "C:\Program Files (x86)\WiX Toolset v3.14\bin" | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append
166+
167+
- name: Build Windows installer
168+
run: .\installer\windows\build.ps1
107169

108-
- name: Build Windows
109-
run: flutter build windows --release
170+
- name: Upload Windows MSI artifact
171+
uses: actions/upload-artifact@v4
172+
with:
173+
name: windows-msi-installer
174+
path: dist/windows/x64/*.msi
175+
retention-days: 7
110176

111177
status-check:
112178
name: All Builds Status
113179
runs-on: ubuntu-latest
114-
needs: [build-android, build-web, build-windows]
180+
needs: [build-android, build-linux, build-web, build-windows]
115181
if: always()
116182

117183
steps:
118184
- name: Check build status
119185
run: |
120186
if [ "${{ needs.build-android.result }}" != "success" ] || \
187+
[ "${{ needs.build-linux.result }}" != "success" ] || \
121188
[ "${{ needs.build-web.result }}" != "success" ] || \
122189
[ "${{ needs.build-windows.result }}" != "success" ]; then
123190
echo "Some builds failed!"

.gitignore

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,8 +146,8 @@ doc/api/
146146
.flutter-plugins
147147
.flutter-plugins-dependencies
148148

149-
# MSI output stuff
150-
installer/output/*
149+
# Build output
150+
dist/
151151

152152
gitignore# IDE - IntelliJ / Android Studio
153153
.idea/

README.md

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
[![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0)
55
[![GitHub issues](https://img.shields.io/github/issues/byteroast/music-sharity)](https://github.com/byteroast/music-sharity/issues)
66
[![Build Tests](https://github.com/ByteRoast/music-sharity/actions/workflows/build_tests.yml/badge.svg)](https://github.com/ByteRoast/music-sharity/actions/workflows/build_tests.yml)
7-
[![Platform](https://img.shields.io/badge/Platform-Android%20|%20Windows%20|%20Web-brightgreen)]()
7+
[![Platform](https://img.shields.io/badge/Platform-Android%20|%20Windows%20|%20Linux%20|%20Web-brightgreen)]()
88

99
[![GitHub stars](https://img.shields.io/github/stars/byteroast/music-sharity?style=social)](https://github.com/byteroast/music-sharity/stargazers)
1010

1111
> [!WARNING]
12-
> Currently only **Android**, **Windows** and **Web** builds are officially released and supported.
12+
> Currently only **Android**, **Windows**, **Linux** and **Web** builds are officially released and supported.
1313
>
14-
> iOS, macOS and Linux builds are technically functional but not actively maintained due to hardware limitations (no Mac ownership). Community contributions for these platforms are welcome!
14+
> iOS and macOS builds are technically functional but not actively maintained due to hardware limitations (no Mac ownership). Community contributions for these platforms are welcome!
1515
1616
**Music Sharity** is a cross-platform app that converts music links between different streaming services instantly.
1717

@@ -42,25 +42,32 @@
4242

4343
**Option 2: Direct APK Download**
4444
1. Go to [Releases](https://github.com/byteroast/music-sharity/releases)
45-
2. Download the latest `music-sharity-x.y.z.apk`
45+
2. Download the latest `music-sharity-x.y.z+<build>.apk`
4646
3. Enable "Install from unknown sources" in Settings
4747
4. Install the APK
4848

4949
### Windows
5050

5151
1. Go to [Releases](https://github.com/byteroast/music-sharity/releases)
52-
2. Download `music-sharity-x.y.z-windows-x64.exe`
52+
2. Download `music-sharity-x.y.z+<build>-windows-x64.msi`
5353
3. Install the program
5454
4. Run `Music Sharity`
5555

56+
### Linux
57+
58+
1. Go to [Releases](https://github.com/byteroast/music-sharity/releases)
59+
2. Download `music-sharity-x.y.z+<build>-amd64.deb` or `music-sharity-x.y.z-<build>-x86_64.rpm`
60+
3. Install the package
61+
4. Run `Music Sharity`
62+
5663
### Web
5764

5865
1. Go to [https://music-sharity.byteroast.fr](https://music-sharity.byteroast.fr)
5966
2. Use it like this or install it as PWA (On Android devices the PWA can appear in the share fleet)
6067

6168
### Other Platforms
6269

63-
While **iOS, macOS and Linux** builds can be compiled, they are **not officially supported** at this time due to:
70+
While **iOS and macOS** builds can be compiled, they are **not officially supported** at this time due to:
6471
- Lack of hardware for testing (no Mac)
6572
- No active maintenance
6673

@@ -159,7 +166,10 @@ flutter run
159166
# Windows
160167
flutter run -d windows
161168

162-
# Web (experimental)
169+
# Linux
170+
flutter run -d linux
171+
172+
# Web
163173
flutter run -d chrome
164174
```
165175

@@ -170,14 +180,20 @@ flutter build apk --release
170180

171181
# Windows
172182
flutter build windows --release
183+
184+
# Linux
185+
flutter build linux --release
186+
187+
# Web
188+
flutter build web --release
173189
```
174190

175191
## Contributing
176192

177193
Contributions are welcome! Especially for:
178194

179195
- **iOS/macOS support** (need Mac owners!)
180-
- **Web optimization**
196+
- **Web optimizations**
181197
- **New platform integrations**
182198
- **Bug fixes**
183199

android/app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@
3131
<data android:mimeType="text/plain" />
3232
</intent-filter>
3333

34-
<intent-filter android:autoVerify="true">
34+
<intent-filter>
3535
<action android:name="android.intent.action.VIEW" />
3636
<category android:name="android.intent.category.DEFAULT" />
3737
<category android:name="android.intent.category.BROWSABLE" />

installer/common/copyright

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
2+
Upstream-Name: Music Sharity
3+
Upstream-Contact: Sikelio (Byte Roast) <contact@byteroast.fr>
4+
Source: https://github.com/ByteRoast/music-sharity
5+
6+
Files: *
7+
Copyright: 2026 Sikelio (Byte Roast)
8+
License: GPL-3+
9+
This program is free software: you can redistribute it and/or modify
10+
it under the terms of the GNU General Public License as published by
11+
the Free Software Foundation, either version 3 of the License, or
12+
(at your option) any later version.
13+
.
14+
This program is distributed in the hope that it will be useful,
15+
but WITHOUT ANY WARRANTY; without even the implied warranty of
16+
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17+
GNU General Public License for more details.
18+
.
19+
You should have received a copy of the GNU General Public License
20+
along with this program. If not, see <https://www.gnu.org/licenses/>.
21+
.
22+
On Debian systems, the complete text of the GNU General
23+
Public License version 3 can be found in "/usr/share/common-licenses/GPL-3".

0 commit comments

Comments
 (0)