KitsuneOffline/.github/workflows/buildnw.yml

172 lines
7.8 KiB
YAML

name: Build apps
on:
[push, workflow_dispatch]
jobs:
buildandroid:
name: Build Android app
runs-on: ubuntu-latest
steps:
- name: Get repository code
uses: actions/checkout@v2
with:
ref: android
- name: Build Android app
run: chmod +x gradlew && ./gradlew assembleWebview
- name: Upload Android build
uses: actions/upload-artifact@v2
with:
name: KitsuneOffline-android.apk
path: app/build/outputs/apk/webview/release/app-webview-release-unsigned.apk
buildios:
name: Build iOS app
runs-on: macos-latest
steps:
- name: Get repository code
uses: actions/checkout@v2
with:
ref: ios
- name: Install Cordova
run: npm install cordova -g
- name: Add iOS platform
run: cordova platform add ios && npm install cordova-icon
- name: Build iOS app
run: cordova build ios --target iPhone-8
- name: Make .ipa Archive
run: cd platforms/ios/build/emulator && mkdir Payload && mv Kitsune.app Payload && zip -r kitsune-ios.ipa Payload
- name: Upload iOS app
uses: actions/upload-artifact@v2
with:
name: kitsune-ios.ipa
path: platforms/ios/build/emulator/kitsune-ios.ipa
buildnw:
name: Build NW.js apps
runs-on: ubuntu-latest
steps:
- name: Get repository code
uses: actions/checkout@v2
- name: Create build directory
run: mkdir build
- name: Download Windows x64 NW.js
run: wget https://dl.nwjs.io/v0.66.1/nwjs-v0.66.1-win-x64.zip
- name: Download Windows ia32 NW.js
run: wget https://dl.nwjs.io/v0.66.1/nwjs-v0.66.1-win-ia32.zip
- name: Download Linux x64 NW.js
run: wget https://dl.nwjs.io/v0.66.1/nwjs-v0.66.1-linux-x64.tar.gz
- name: Download Linux ia32 NW.js
run: wget https://dl.nwjs.io/v0.66.1/nwjs-v0.66.1-linux-ia32.tar.gz
- name: Download MacOS NW.js
run: wget https://dl.nwjs.io/v0.66.1/nwjs-v0.66.1-osx-x64.zip
- name: Extract Windows x64 NW.js
run: unzip nwjs-v0.66.1-win-x64.zip
- name: Extract Windows ia32 NW.js
run: unzip nwjs-v0.66.1-win-ia32.zip
- name: Extract Linux x64 NW.js
run: tar -xvf nwjs-v0.66.1-linux-x64.tar.gz
- name: Extract Linux ia32 NW.js
run: tar -xvf nwjs-v0.66.1-linux-ia32.tar.gz
- name: Extract MacOS NW.js
run: unzip nwjs-v0.66.1-osx-x64.zip
- name: Delete archives
run: rm nwjs-v0.66.1-linux-x64.tar.gz nwjs-v0.66.1-win-x64.zip nwjs-v0.66.1-linux-ia32.tar.gz nwjs-v0.66.1-win-ia32.zip nwjs-v0.66.1-osx-x64.zip
- name: Rename and move NW.js directories
run: mv nwjs-v0.66.1-linux-x64 build/KitsuneOffline-linux-x64 && mv nwjs-v0.66.1-win-x64 build/KitsuneOffline-win-x64 && mv nwjs-v0.66.1-linux-ia32 build/KitsuneOffline-linux-ia32 && mv nwjs-v0.66.1-win-ia32 build/KitsuneOffline-win-ia32 && mv nwjs-v0.66.1-osx-x64/nwjs.app build/Kitsune.app
- name: Create package.nw directories
run: mkdir build/KitsuneOffline-linux-x64/package.nw && mkdir build/KitsuneOffline-win-x64/package.nw && mkdir build/KitsuneOffline-linux-ia32/package.nw && mkdir build/KitsuneOffline-win-ia32/package.nw && mkdir build/Kitsune.app/Contents/Resources/app.nw
- name: Copy NW.js directories
run: cp -r logos build/KitsuneOffline-linux-x64/package.nw && cp -r logos build/KitsuneOffline-win-x64/package.nw && cp -r logos build/KitsuneOffline-linux-ia32/package.nw && cp -r logos build/KitsuneOffline-win-ia32/package.nw && cp -r logos build/Kitsune.app/Contents/Resources/app.nw && cp -r gstatic build/KitsuneOffline-linux-x64/package.nw && cp -r gstatic build/KitsuneOffline-win-x64/package.nw && cp -r gstatic build/KitsuneOffline-linux-ia32/package.nw && cp -r gstatic build/KitsuneOffline-win-ia32/package.nw && cp -r gstatic build/Kitsune.app/Contents/Resources/app.nw && cp -r silica build/KitsuneOffline-linux-x64/package.nw && cp -r silica build/KitsuneOffline-win-x64/package.nw && cp -r silica build/KitsuneOffline-linux-ia32/package.nw && cp -r silica build/KitsuneOffline-win-ia32/package.nw && cp -r silica build/Kitsune.app/Contents/Resources/app.nw
- name: Copy package.json to NW.js directories
run: cp package.json build/KitsuneOffline-linux-x64/package.nw && cp package.json build/KitsuneOffline-win-x64/package.nw && cp package.json build/KitsuneOffline-linux-ia32/package.nw && cp package.json build/KitsuneOffline-win-ia32/package.nw && cp package.json build/Kitsune.app/Contents/Resources/app.nw
- name: Rename executables
run: mv build/KitsuneOffline-linux-x64/nw build/KitsuneOffline-linux-x64/kitsune && mv build/KitsuneOffline-linux-ia32/nw build/KitsuneOffline-linux-ia32/kitsune && mv build/KitsuneOffline-win-x64/nw.exe build/KitsuneOffline-win-x64/kitsune.exe && mv build/KitsuneOffline-win-ia32/nw.exe build/KitsuneOffline-win-ia32/kitsune.exe
- name: Create Debian installer file structure
run: mkdir build/KitsuneOffline-debian-x64 && mkdir build/KitsuneOffline-debian-x64/usr && mkdir mkdir build/KitsuneOffline-debian-x64/DEBIAN && mkdir build/KitsuneOffline-debian-x64/usr/bin && mkdir build/KitsuneOffline-debian-x64/usr/lib && mkdir build/KitsuneOffline-debian-x64/usr/share && mkdir build/KitsuneOffline-debian-x64/usr/share/applications
- name: Copy Linux build to Debian installer
run: cp -r build/KitsuneOffline-linux-x64 build/KitsuneOffline-debian-x64/usr/lib
- name: Create Symlink to command
run: cd build/KitsuneOffline-debian-x64/usr/bin && ln -s ../lib/KitsuneOffline-linux-x64/kitsune
- name: Copy control file
run: cp DEBIAN/control build/KitsuneOffline-debian-x64/DEBIAN
- name: Copy desktop file
run: cp kitsune.desktop build/KitsuneOffline-debian-x64/usr/share/applications
- name: Create Debian installer
run: cd build && dpkg-deb --build KitsuneOffline-debian-x64
- name: Create Windows archives
run: cd build && zip -r KitsuneOffline-win-x64.zip KitsuneOffline-win-x64 && zip -r KitsuneOffline-win-ia32.zip KitsuneOffline-win-ia32
- name: Create Linux archives
run: cd build && tar -czvf KitsuneOffline-linux-x64.tar.gz KitsuneOffline-linux-x64 && tar -czvf KitsuneOffline-linux-ia32.tar.gz KitsuneOffline-linux-ia32
- name: Create MacOS archive
run: cd build && zip -r KitsuneOffline-osx.zip Kitsune.app
- name: Upload Windows x64 build
uses: actions/upload-artifact@v2
with:
name: KitsuneOffline-win-x64.zip
path: build/KitsuneOffline-win-x64.zip
- name: Upload Linux x64 build
uses: actions/upload-artifact@v2
with:
name: KitsuneOffline-linux-x64.tar.gz
path: build/KitsuneOffline-linux-x64.tar.gz
- name: Upload Windows ia32 build
uses: actions/upload-artifact@v2
with:
name: KitsuneOffline-win-ia32.zip
path: build/KitsuneOffline-win-ia32.zip
- name: Upload Linux ia32 build
uses: actions/upload-artifact@v2
with:
name: KitsuneOffline-linux-ia32.tar.gz
path: build/KitsuneOffline-linux-ia32.tar.gz
- name: Upload Debian installer build
uses: actions/upload-artifact@v2
with:
name: KitsuneOffline-debian-x64.deb
path: build/KitsuneOffline-debian-x64.deb
- name: Upload MacOS build
uses: actions/upload-artifact@v2
with:
name: KitsuneOffline-osx.zip
path: build/KitsuneOffline-osx.zip