|
30 | 30 | - target: Linux
|
31 | 31 | os: ubuntu-latest
|
32 | 32 | artifact_name: release-Linux
|
33 |
| - artifact_path: build/linux/*.zip |
| 33 | + artifact_path: | |
| 34 | + build/linux/*.AppImage |
| 35 | + build/linux/*.deb |
34 | 36 | - target: iOS
|
35 | 37 | os: macos-latest
|
36 | 38 | cache_pod_key: ios-pods
|
@@ -139,18 +141,60 @@ jobs:
|
139 | 141 | Copy-Item $SrcDir\* -Recurse $DestDir
|
140 | 142 | Copy-Item -Filter *.dll -Path windows\* -Destination $DestDir -Force
|
141 | 143 | Compress-Archive $DestDir build\windows\JHenTai_${{ steps.get_version.outputs.version }}_Windows.zip
|
142 |
| - # Build Linux .zip |
| 144 | + # Build Linux .deb and .AppImage |
143 | 145 | - name: Build Linux
|
144 | 146 | if: matrix.target == 'Linux'
|
145 | 147 | run: |
|
| 148 | + # Prepare build depends |
146 | 149 | sudo apt-get update -y
|
147 |
| - sudo apt-get install -y ninja-build libgtk-3-dev |
| 150 | + sudo apt-get install -y ninja-build libgtk-3-dev libfuse2 |
| 151 | +
|
| 152 | + # Compile |
148 | 153 | flutter config --enable-linux-desktop
|
149 | 154 | flutter build linux --release -t lib/src/main.dart
|
150 |
| - mkdir ./build/linux/JHenTai_${{ steps.get_version.outputs.version }} |
151 |
| - cp -a build/linux/x64/release/bundle/* ./build/linux/JHenTai_${{ steps.get_version.outputs.version }} |
152 |
| - cd build/linux |
153 |
| - zip -qroy JHenTai_${{ steps.get_version.outputs.version }}_Linux.zip JHenTai_${{ steps.get_version.outputs.version }} |
| 155 | +
|
| 156 | + # Build debian package |
| 157 | + mkdir -p build/linux/JHenTai-${{ steps.get_version.outputs.version }}-Linux-amd64 |
| 158 | + cd build/linux/JHenTai-${{ steps.get_version.outputs.version }}-Linux-amd64 |
| 159 | + mkdir -p opt/jhentai |
| 160 | + mkdir -p usr/share/applications |
| 161 | + mkdir -p usr/share/icons/hicolor/512x512/apps |
| 162 | + cp -r ../x64/release/bundle/* opt/jhentai |
| 163 | + cp -r ../../../linux/assets/DEBIAN . |
| 164 | + chmod 0755 DEBIAN/postinst |
| 165 | + chmod 0755 DEBIAN/postrm |
| 166 | +
|
| 167 | + cat>DEBIAN/control<<EOF |
| 168 | + Maintainer: madoka773 <[email protected]> |
| 169 | + Package: jhentai |
| 170 | + Version: ${{ steps.get_version.outputs.version }} |
| 171 | + Section: x11 |
| 172 | + Priority: optional |
| 173 | + Architecture: amd64 |
| 174 | + Essential: no |
| 175 | + Installed-Size: 34648 |
| 176 | + Description: A cross-platform app made for e-hentai & exhentai by Flutter. |
| 177 | + Homepage: https://github.com/jiangtian616/JHenTai |
| 178 | + EOF |
| 179 | +
|
| 180 | + cp ../../../linux/assets/top.jtmonster.jhentai.desktop usr/share/applications |
| 181 | + cp ../../../assets/icon_512.png usr/share/icons/hicolor/512x512/apps/top.jtmonster.jhentai.png |
| 182 | +
|
| 183 | + cd .. |
| 184 | + dpkg-deb --build JHenTai-${{ steps.get_version.outputs.version }}-Linux-amd64 |
| 185 | +
|
| 186 | + # Build AppImage |
| 187 | + wget -O appimage-builder https://github.com/AppImageCrafters/appimage-builder/releases/download/v1.1.0/appimage-builder-1.1.0-x86_64.AppImage |
| 188 | + chmod +x appimage-builder |
| 189 | +
|
| 190 | + mkdir AppDir |
| 191 | + cp -r x64/release/bundle/* AppDir |
| 192 | + mkdir -p AppDir/usr/share/icons/hicolor/512x512/apps/ |
| 193 | + mkdir -p AppDir/usr/share/applications |
| 194 | + cp ../../linux/assets/top.jtmonster.jhentai.desktop AppDir/usr/share/applications |
| 195 | + cp ../../assets/icon_512.png AppDir/usr/share/icons/hicolor/512x512/apps/top.jtmonster.jhentai.png |
| 196 | + ./appimage-builder --skip-tests --recipe ../../linux/assets/AppImageBuilder.yml |
| 197 | + mv JHenTai-latest-x86_64.AppImage JHenTai-${{ steps.get_version.outputs.version }}-Linux-x86_64.AppImage |
154 | 198 | # Upload Artifacts
|
155 | 199 | - name: Upload Artifacts
|
156 | 200 | uses: actions/upload-artifact@v3
|
|
0 commit comments