Skip to content

version 1.3.6

version 1.3.6 #30

Workflow file for this run

---
name: "release"
on:
push:
tags:
- "1.*"
workflow_dispatch:
inputs:
logLevel:
description: 'Log level'
required: true
default: 'warning'
jobs:
flutter-build-android:
name: "Release for android"
runs-on: "ubuntu-latest"
permissions: write-all
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Extract tag name
run: echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash
- name: Echo build progress
run: echo "oneAnime_android_${{ env.tag }}.apk build progress"
shell: bash
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang cmake libgtk-3-dev ninja-build libayatana-appindicator3-dev mpv libmpv-dev libasound2-dev
shell: bash
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version-file: pubspec.yaml
- name: Get Flutter dependencies
run: flutter pub get
shell: bash
- name: Build Flutter for Android
run: flutter build apk --split-per-abi
shell: bash
- name: Package android build output
run: cp build/app/outputs/flutter-apk/app-arm64-v8a-release.apk oneAnime_android_${env:tag}.apk
shell: bash
- name: Upload android outputs
uses: actions/upload-artifact@v4
with:
name: android_outputs
path: oneAnime_android_*.apk
flutter-build-windows:
name: "Release for windows"
runs-on: "windows-latest"
permissions: write-all
steps:
- name: Clone repository
uses: actions/checkout@v4
- run: |
$tag = "${{ github.ref }}".Replace('refs/tags/', '')
echo "tag=$(echo $tag)" >> $env:GITHUB_ENV
- run: echo "oneAnime_windows_${env:tag}.zip build progress"
- run: choco install yq
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version-file: pubspec.yaml
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '18'
- run: flutter pub get
- run: flutter build windows
- name: Download OpenCC Assets
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'Predidit/open_chinese_convert_bridge'
version: 'tags/1.0.0'
file: 'opencc_windows.zip'
token: ${{ secrets.GITHUB_TOKEN }}
- run: Expand-Archive -LiteralPath opencc_windows.zip -DestinationPath build/windows/x64/runner/Release
- run: Compress-Archive build/windows/x64/runner/Release/* oneAnime_windows_${env:tag}.zip
- name: Upload windows outputs
uses: actions/upload-artifact@v4
with:
name: windows_outputs
path: |
oneAnime_windows_*.zip
flutter-build-linux:
name: "Release for Linux"
runs-on: "ubuntu-latest"
permissions: write-all
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Extract tag name
run: echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash
- name: Echo build progress
run: echo "oneAnime_linux_${{ env.tag }}.tar.gz build progress"
shell: bash
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y clang cmake libgtk-3-dev ninja-build libayatana-appindicator3-dev mpv unzip libmpv-dev libasound2-dev
shell: bash
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version-file: pubspec.yaml
- name: Get Flutter dependencies
run: flutter pub get
shell: bash
- name: Build Flutter for Linux
run: flutter build linux
shell: bash
- name: Download OpenCC Assets
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: 'Predidit/open_chinese_convert_bridge'
version: 'tags/1.0.0'
file: 'opencc_linux.zip'
token: ${{ secrets.GITHUB_TOKEN }}
- run: unzip opencc_linux.zip -d build/linux/x64/release/bundle/lib
- name: Package linux build output
run: tar -zcvf oneAnime_linux_${{ env.tag }}.tar.gz -C build/linux/x64/release/bundle .
shell: bash
- name: Upload linux outputs
uses: actions/upload-artifact@v4
with:
name: linux_outputs
path: oneAnime_linux_*.tar.gz
flutter-build-macos:
name: "Release for Macos"
runs-on: "macos-latest"
permissions: write-all
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Extract tag name
run: echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
- name: Echo build progress
run: echo "oneAnime_macos_${{ env.tag }}.dmg build progress"
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version-file: pubspec.yaml
- run: flutter pub get
- run: flutter build macos --release
- name: Create DMG
run: hdiutil create -format UDZO -srcfolder build/macos/Build/Products/Release/oneanime.app -volname oneanime oneAnime_macos_${{ env.tag }}.dmg
- name: Upload MacOS build
uses: actions/upload-artifact@v4
with:
name: macos_outputs
path: oneAnime_macos_*.dmg
flutter-build-ios:
name: "Release for iOS"
runs-on: "macos-latest"
permissions: write-all
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Extract tag name
run: echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
- name: Echo build progress
run: echo "oneAnime_ios_${{ env.tag }}.ipa build progress"
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: stable
flutter-version-file: pubspec.yaml
- run: flutter pub get
- name: Build IPA
run: |
flutter build ios --release --no-codesign
- name: Create IPA
run: |
mkdir Payload
cp -R build/ios/iphoneos/Runner.app Payload/Runner.app
zip -q -r oneAnime_ios_${{ env.tag }}.ipa Payload
- name: Upload iOS build
uses: actions/upload-artifact@v4
with:
name: ios_outputs
path: oneAnime_ios_*.ipa
release:
name: "Release"
runs-on: "ubuntu-latest"
needs: [flutter-build-windows, flutter-build-android, flutter-build-linux, flutter-build-macos, flutter-build-ios]
permissions: write-all
steps:
- name: Clone repository
uses: actions/checkout@v4
- name: Extract tag name
run: echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_ENV
shell: bash
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
- name: Setup Android SDK
uses: android-actions/setup-android@v3
- name: Setup Android build tools
run: sdkmanager "build-tools;34.0.0"
- name: Download windows build file
uses: actions/download-artifact@v4
with:
name: windows_outputs
path: windows_outputs
- name: List files in windows_outputs directory
run: ls -l windows_outputs
- name: Copy windows build file to root
run: cp windows_outputs/* oneAnime_windows_${{ env.tag }}.zip
- name: Download linux build file
uses: actions/download-artifact@v4
with:
name: linux_outputs
path: linux_outputs
- name: List files in linux_outputs directory
run: ls -l linux_outputs
- name: Copy linux build file to root
run: cp linux_outputs/* oneAnime_linux_${{ env.tag }}.tar.gz
- name: Download macos build file
uses: actions/download-artifact@v4
with:
name: macos_outputs
path: macos_outputs
- name: List files in macos_outputs directory
run: ls -l macos_outputs
- name: Copy macos build file to root
run: cp macos_outputs/* oneAnime_macos_${{ env.tag }}.dmg
- name: Download iOS build file
uses: actions/download-artifact@v4
with:
name: ios_outputs
path: ios_outputs
- name: List files in ios_outputs directory
run: ls -l ios_outputs
- name: Copy ios build file to root
run: cp ios_outputs/* oneAnime_ios_${{ env.tag }}_no_sign.ipa
- name: Download android build file
uses: actions/download-artifact@v4
with:
name: android_outputs
path: android_outputs
- name: List files in android_outputs directory
run: ls -l android_outputs
- name: Copy android build file to unsigned floder
run: |
mkdir build
mkdir build/unsigned
mkdir build/signed
cp android_outputs/* build/unsigned/oneAnime_android_${{ env.tag }}.apk
- name: Sign APK
id: sign_app
uses: r0adkll/sign-android-release@v1
with:
releaseDirectory: build/unsigned
signingKeyBase64: ${{ secrets.SIGNING_KEY_BASE64 }}
alias: ${{ secrets.KEY_ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
env:
BUILD_TOOLS_VERSION: "34.0.0"
- name: Copy Signed android build file
run: cp ${{steps.sign_app.outputs.signedReleaseFile}} build/signed/oneAnime_android_${{ env.tag }}.apk
- name: Create release
uses: softprops/action-gh-release@v2
with:
files: |
build/signed/*.apk
oneAnime_windows_*.zip
oneAnime_macos_*.dmg
oneAnime_ios_*.ipa
oneAnime_linux_*.tar.gz