597 lines
28 KiB
YAML
597 lines
28 KiB
YAML
# This file was generated using Kotlin DSL (.github/workflows/src.main.kts).
|
|
# If you want to modify the workflow, please change the Kotlin file and regenerate this YAML file.
|
|
# Generated with https://github.com/typesafegithub/github-workflows-kt
|
|
|
|
name: 'Build'
|
|
on:
|
|
push:
|
|
paths-ignore:
|
|
- '**/*.md'
|
|
pull_request:
|
|
paths-ignore:
|
|
- '**/*.md'
|
|
jobs:
|
|
build_self-hosted-windows-10:
|
|
name: 'Build (Windows 10 x86_64 (Self-Hosted))'
|
|
runs-on:
|
|
- 'self-hosted'
|
|
- 'Windows'
|
|
- 'X64'
|
|
permissions:
|
|
actions: 'write'
|
|
if: '${{ github.repository == ''open-ani/animeko'' }}'
|
|
steps:
|
|
- id: 'step-0'
|
|
uses: 'actions/checkout@v4'
|
|
with:
|
|
submodules: 'recursive'
|
|
- id: 'step-1'
|
|
name: 'Setup JBR 21 for other OS'
|
|
uses: 'gmitch215/setup-java@6d2c5e1f82f180ae79f799f0ed6e3e5efb4e664d'
|
|
with:
|
|
java-version: '21'
|
|
distribution: 'jetbrains'
|
|
env:
|
|
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
|
|
- id: 'step-2'
|
|
run: 'echo "jvm.toolchain.version=21" >> local.properties'
|
|
- id: 'step-3'
|
|
name: 'Setup Gradle'
|
|
uses: 'gradle/actions/setup-gradle@v3'
|
|
with:
|
|
cache-disabled: 'true'
|
|
- id: 'step-4'
|
|
name: 'Clean and download dependencies'
|
|
uses: 'nick-fields/retry@v2'
|
|
with:
|
|
timeout_minutes: '60'
|
|
max_attempts: '3'
|
|
command: './gradlew "--stacktrace" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DBoost_INCLUDE_DIR=C:/vcpkg/installed/x64-windows/include" "-Dorg.gradle.jvmargs=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "--parallel" "-Pani.android.abis=x86_64"'
|
|
- id: 'step-5'
|
|
name: 'Update dev version name'
|
|
run: './gradlew updateDevVersionNameFromGit "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DBoost_INCLUDE_DIR=C:/vcpkg/installed/x64-windows/include" "-Dorg.gradle.jvmargs=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "--parallel" "-Pani.android.abis=x86_64"'
|
|
- id: 'step-6'
|
|
name: 'Compile Kotlin'
|
|
run: './gradlew compileKotlin compileCommonMainKotlinMetadata compileDebugKotlinAndroid compileReleaseKotlinAndroid compileJvmMainKotlinMetadata compileKotlinDesktop compileKotlinMetadata "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DBoost_INCLUDE_DIR=C:/vcpkg/installed/x64-windows/include" "-Dorg.gradle.jvmargs=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "--parallel" "-Pani.android.abis=x86_64"'
|
|
- id: 'step-7'
|
|
name: 'Check'
|
|
uses: 'nick-fields/retry@v2'
|
|
with:
|
|
timeout_minutes: '60'
|
|
max_attempts: '2'
|
|
command: './gradlew check "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DBoost_INCLUDE_DIR=C:/vcpkg/installed/x64-windows/include" "-Dorg.gradle.jvmargs=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "--parallel" "-Pani.android.abis=x86_64"'
|
|
build_github-windows-2019:
|
|
name: 'Build (Windows Server 2019 x86_64)'
|
|
runs-on:
|
|
- 'windows-2019'
|
|
permissions:
|
|
actions: 'write'
|
|
outputs:
|
|
windowsX64PortableSuccess: '${{ steps.step-10.outcome == ''success'' }}'
|
|
steps:
|
|
- id: 'step-0'
|
|
uses: 'actions/checkout@v4'
|
|
with:
|
|
submodules: 'recursive'
|
|
- id: 'step-1'
|
|
name: 'Setup JBR 21 for other OS'
|
|
uses: 'gmitch215/setup-java@6d2c5e1f82f180ae79f799f0ed6e3e5efb4e664d'
|
|
with:
|
|
java-version: '21'
|
|
distribution: 'jetbrains'
|
|
env:
|
|
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
|
|
- id: 'step-2'
|
|
run: 'echo "jvm.toolchain.version=21" >> local.properties'
|
|
- id: 'step-3'
|
|
name: 'Setup Gradle'
|
|
uses: 'gradle/actions/setup-gradle@v3'
|
|
with:
|
|
cache-disabled: 'true'
|
|
- id: 'step-4'
|
|
name: 'Clean and download dependencies'
|
|
uses: 'nick-fields/retry@v2'
|
|
with:
|
|
timeout_minutes: '60'
|
|
max_attempts: '3'
|
|
command: './gradlew "--stacktrace" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DBoost_INCLUDE_DIR=C:/vcpkg/installed/x64-windows/include" "-Dorg.gradle.jvmargs=-Xmx4g" "-Dkotlin.daemon.jvm.options=-Xmx4g" "--parallel" "-Pani.android.abis=x86_64"'
|
|
- id: 'step-5'
|
|
name: 'Update dev version name'
|
|
run: './gradlew updateDevVersionNameFromGit "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DBoost_INCLUDE_DIR=C:/vcpkg/installed/x64-windows/include" "-Dorg.gradle.jvmargs=-Xmx4g" "-Dkotlin.daemon.jvm.options=-Xmx4g" "--parallel" "-Pani.android.abis=x86_64"'
|
|
- id: 'step-6'
|
|
name: 'Compile Kotlin'
|
|
run: './gradlew compileKotlin compileCommonMainKotlinMetadata compileDebugKotlinAndroid compileReleaseKotlinAndroid compileJvmMainKotlinMetadata compileKotlinDesktop compileKotlinMetadata "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DBoost_INCLUDE_DIR=C:/vcpkg/installed/x64-windows/include" "-Dorg.gradle.jvmargs=-Xmx4g" "-Dkotlin.daemon.jvm.options=-Xmx4g" "--parallel" "-Pani.android.abis=x86_64"'
|
|
- id: 'step-7'
|
|
name: 'Check'
|
|
uses: 'nick-fields/retry@v2'
|
|
with:
|
|
timeout_minutes: '60'
|
|
max_attempts: '2'
|
|
command: './gradlew check "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DBoost_INCLUDE_DIR=C:/vcpkg/installed/x64-windows/include" "-Dorg.gradle.jvmargs=-Xmx4g" "-Dkotlin.daemon.jvm.options=-Xmx4g" "--parallel" "-Pani.android.abis=x86_64"'
|
|
- id: 'step-8'
|
|
name: 'Package Desktop'
|
|
run: './gradlew createReleaseDistributable "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake" "-DBoost_INCLUDE_DIR=C:/vcpkg/installed/x64-windows/include" "-Dorg.gradle.jvmargs=-Xmx4g" "-Dkotlin.daemon.jvm.options=-Xmx4g" "--parallel" "-Pani.android.abis=x86_64"'
|
|
- id: 'step-9'
|
|
name: 'Upload compose logs'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'compose-logs-github-windows-2019'
|
|
path: 'app/desktop/build/compose/logs'
|
|
- id: 'step-10'
|
|
name: 'Upload Windows packages'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-windows-portable'
|
|
path: 'app/desktop/build/compose/binaries/main-release/app'
|
|
if-no-files-found: 'error'
|
|
overwrite: 'true'
|
|
build_github-macos-13:
|
|
name: 'Build (macOS 13 x86_64 (GitHub))'
|
|
runs-on:
|
|
- 'macos-13'
|
|
permissions:
|
|
actions: 'write'
|
|
steps:
|
|
- id: 'step-0'
|
|
uses: 'actions/checkout@v4'
|
|
with:
|
|
submodules: 'recursive'
|
|
- id: 'step-1'
|
|
name: 'Free space for macOS'
|
|
continue-on-error: true
|
|
run: 'chmod +x ./ci-helper/free-space-macos.sh && ./ci-helper/free-space-macos.sh'
|
|
- id: 'step-2'
|
|
name: 'Setup JBR 21 for other OS'
|
|
uses: 'gmitch215/setup-java@6d2c5e1f82f180ae79f799f0ed6e3e5efb4e664d'
|
|
with:
|
|
java-version: '21'
|
|
distribution: 'jetbrains'
|
|
env:
|
|
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
|
|
- id: 'step-3'
|
|
run: 'echo "jvm.toolchain.version=21" >> local.properties'
|
|
- id: 'step-4'
|
|
run: 'chmod -R 777 .'
|
|
- id: 'step-5'
|
|
name: 'Setup Gradle'
|
|
uses: 'gradle/actions/setup-gradle@v3'
|
|
with:
|
|
cache-disabled: 'true'
|
|
- id: 'step-6'
|
|
name: 'Clean and download dependencies'
|
|
uses: 'nick-fields/retry@v2'
|
|
with:
|
|
timeout_minutes: '60'
|
|
max_attempts: '3'
|
|
command: './gradlew "--stacktrace" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx4g" "-Dkotlin.daemon.jvm.options=-Xmx4g"'
|
|
- id: 'step-7'
|
|
name: 'Update dev version name'
|
|
run: './gradlew updateDevVersionNameFromGit "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx4g" "-Dkotlin.daemon.jvm.options=-Xmx4g"'
|
|
- id: 'step-8'
|
|
name: 'Prepare signing key'
|
|
continue-on-error: true
|
|
uses: 'timheuer/base64-to-file@v1.1'
|
|
with:
|
|
fileName: 'android_signing_key'
|
|
fileDir: './'
|
|
encodedString: '${{ secrets.SIGNING_RELEASE_STOREFILE }}'
|
|
if: '${{ (github.repository == ''open-ani/animeko'') && (!(github.event_name == ''pull_request'')) }}'
|
|
- id: 'step-9'
|
|
name: 'Compile Kotlin'
|
|
run: './gradlew compileKotlin compileCommonMainKotlinMetadata compileDebugKotlinAndroid compileReleaseKotlinAndroid compileJvmMainKotlinMetadata compileKotlinDesktop compileKotlinMetadata "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx4g" "-Dkotlin.daemon.jvm.options=-Xmx4g"'
|
|
- id: 'step-10'
|
|
name: 'Build Android Debug APKs'
|
|
run: './gradlew assembleDebug "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx4g" "-Dkotlin.daemon.jvm.options=-Xmx4g"'
|
|
- id: 'step-11'
|
|
name: 'Upload Android Debug APK arm64-v8a'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-android-arm64-v8a-debug'
|
|
path: 'app/android/build/outputs/apk/debug/android-arm64-v8a-debug.apk'
|
|
overwrite: 'true'
|
|
- id: 'step-12'
|
|
name: 'Upload Android Debug APK x86_64'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-android-x86_64-debug'
|
|
path: 'app/android/build/outputs/apk/debug/android-x86_64-debug.apk'
|
|
overwrite: 'true'
|
|
- id: 'step-13'
|
|
name: 'Upload Android Debug APK armeabi-v7a'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-android-armeabi-v7a-debug'
|
|
path: 'app/android/build/outputs/apk/debug/android-armeabi-v7a-debug.apk'
|
|
overwrite: 'true'
|
|
- id: 'step-14'
|
|
name: 'Upload Android Debug APK universal'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-android-universal-debug'
|
|
path: 'app/android/build/outputs/apk/debug/android-universal-debug.apk'
|
|
overwrite: 'true'
|
|
- id: 'step-15'
|
|
name: 'Build Android Release APKs'
|
|
env:
|
|
signing_release_storeFileFromRoot: '${{ steps.step-8.outputs.filePath }}'
|
|
signing_release_storePassword: '${{ secrets.SIGNING_RELEASE_STOREPASSWORD }}'
|
|
signing_release_keyAlias: '${{ secrets.SIGNING_RELEASE_KEYALIAS }}'
|
|
signing_release_keyPassword: '${{ secrets.SIGNING_RELEASE_KEYPASSWORD }}'
|
|
run: './gradlew assembleRelease "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx4g" "-Dkotlin.daemon.jvm.options=-Xmx4g"'
|
|
if: '${{ (github.repository == ''open-ani/animeko'') && (!(github.event_name == ''pull_request'')) }}'
|
|
- id: 'step-16'
|
|
name: 'Upload Android Release APK arm64-v8a'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-android-arm64-v8a-release'
|
|
path: 'app/android/build/outputs/apk/release/android-arm64-v8a-release.apk'
|
|
overwrite: 'true'
|
|
- id: 'step-17'
|
|
name: 'Upload Android Release APK x86_64'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-android-x86_64-release'
|
|
path: 'app/android/build/outputs/apk/release/android-x86_64-release.apk'
|
|
overwrite: 'true'
|
|
- id: 'step-18'
|
|
name: 'Upload Android Release APK armeabi-v7a'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-android-armeabi-v7a-release'
|
|
path: 'app/android/build/outputs/apk/release/android-armeabi-v7a-release.apk'
|
|
overwrite: 'true'
|
|
- id: 'step-19'
|
|
name: 'Upload Android Release APK universal'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-android-universal-release'
|
|
path: 'app/android/build/outputs/apk/release/android-universal-release.apk'
|
|
overwrite: 'true'
|
|
- id: 'step-20'
|
|
name: 'Check'
|
|
uses: 'nick-fields/retry@v2'
|
|
with:
|
|
timeout_minutes: '60'
|
|
max_attempts: '2'
|
|
command: './gradlew check "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx4g" "-Dkotlin.daemon.jvm.options=-Xmx4g"'
|
|
build_self-hosted-macos-15:
|
|
name: 'Build (macOS 15 AArch64 (Self-Hosted))'
|
|
runs-on:
|
|
- 'self-hosted'
|
|
- 'macOS'
|
|
- 'ARM64'
|
|
permissions:
|
|
actions: 'write'
|
|
if: '${{ github.repository == ''open-ani/animeko'' }}'
|
|
outputs:
|
|
macosAarch64DmgSuccess: '${{ steps.step-22.outcome == ''success'' }}'
|
|
steps:
|
|
- id: 'step-0'
|
|
uses: 'actions/checkout@v4'
|
|
with:
|
|
submodules: 'recursive'
|
|
- id: 'step-1'
|
|
name: 'Resolve JBR location'
|
|
run: |-
|
|
# Expand jbrLocationExpr
|
|
jbr_location_expr=$(eval echo ${{ runner.tool_cache }}/jbrsdk_jcef-21.0.5-osx-aarch64-b631.8.tar.gz)
|
|
echo "jbrLocation=$jbr_location_expr" >> $GITHUB_OUTPUT
|
|
- id: 'step-2'
|
|
name: 'Get JBR 21 for macOS AArch64'
|
|
env:
|
|
jbrLocation: '${{ steps.step-1.outputs.jbrLocation }}'
|
|
run: |-
|
|
jbr_location="$jbrLocation"
|
|
checksum_url="https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_jcef-21.0.5-osx-aarch64-b631.8.tar.gz.checksum"
|
|
checksum_file="checksum.tmp"
|
|
wget -q -O $checksum_file $checksum_url
|
|
|
|
expected_checksum=$(awk '{print $1}' $checksum_file)
|
|
file_checksum=""
|
|
|
|
if [ -f "$jbr_location" ]; then
|
|
file_checksum=$(shasum -a 512 "$jbr_location" | awk '{print $1}')
|
|
fi
|
|
|
|
if [ "$file_checksum" != "$expected_checksum" ]; then
|
|
wget -q --tries=3 https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_jcef-21.0.5-osx-aarch64-b631.8.tar.gz -O "$jbr_location"
|
|
file_checksum=$(shasum -a 512 "$jbr_location" | awk '{print $1}')
|
|
fi
|
|
|
|
if [ "$file_checksum" != "$expected_checksum" ]; then
|
|
echo "Checksum verification failed!" >&2
|
|
rm -f $checksum_file
|
|
exit 1
|
|
fi
|
|
|
|
rm -f $checksum_file
|
|
file "$jbr_location"
|
|
- id: 'step-3'
|
|
name: 'Setup JBR 21 for macOS AArch64'
|
|
uses: 'gmitch215/setup-java@6d2c5e1f82f180ae79f799f0ed6e3e5efb4e664d'
|
|
with:
|
|
java-version: '21'
|
|
distribution: 'jdkfile'
|
|
jdkFile: '${{ steps.step-1.outputs.jbrLocation }}'
|
|
env:
|
|
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
|
|
- id: 'step-4'
|
|
run: 'echo "jvm.toolchain.version=21" >> local.properties'
|
|
- id: 'step-5'
|
|
run: 'chmod -R 777 .'
|
|
- id: 'step-6'
|
|
name: 'Setup Gradle'
|
|
uses: 'gradle/actions/setup-gradle@v3'
|
|
with:
|
|
cache-disabled: 'true'
|
|
- id: 'step-7'
|
|
name: 'Clean and download dependencies'
|
|
uses: 'nick-fields/retry@v2'
|
|
with:
|
|
timeout_minutes: '60'
|
|
max_attempts: '3'
|
|
command: './gradlew "--stacktrace" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx4g" "--parallel" "-Pani.android.abis=arm64-v8a"'
|
|
- id: 'step-8'
|
|
name: 'Update dev version name'
|
|
run: './gradlew updateDevVersionNameFromGit "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx4g" "--parallel" "-Pani.android.abis=arm64-v8a"'
|
|
- id: 'step-9'
|
|
name: 'Prepare signing key'
|
|
continue-on-error: true
|
|
uses: 'timheuer/base64-to-file@v1.1'
|
|
with:
|
|
fileName: 'android_signing_key'
|
|
fileDir: './'
|
|
encodedString: '${{ secrets.SIGNING_RELEASE_STOREFILE }}'
|
|
if: '${{ (github.repository == ''open-ani/animeko'') && (!(github.event_name == ''pull_request'')) }}'
|
|
- id: 'step-10'
|
|
name: 'Compile Kotlin'
|
|
run: './gradlew compileKotlin compileCommonMainKotlinMetadata compileDebugKotlinAndroid compileReleaseKotlinAndroid compileJvmMainKotlinMetadata compileKotlinDesktop compileKotlinMetadata "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx4g" "--parallel" "-Pani.android.abis=arm64-v8a"'
|
|
- id: 'step-11'
|
|
name: 'Build Android Debug APKs'
|
|
run: './gradlew assembleDebug "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx4g" "--parallel" "-Pani.android.abis=arm64-v8a"'
|
|
- id: 'step-12'
|
|
name: 'Upload Android Debug APK arm64-v8a'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-android-arm64-v8a-debug'
|
|
path: 'app/android/build/outputs/apk/debug/android-arm64-v8a-debug.apk'
|
|
overwrite: 'true'
|
|
- id: 'step-13'
|
|
name: 'Upload Android Debug APK x86_64'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-android-x86_64-debug'
|
|
path: 'app/android/build/outputs/apk/debug/android-x86_64-debug.apk'
|
|
overwrite: 'true'
|
|
- id: 'step-14'
|
|
name: 'Upload Android Debug APK armeabi-v7a'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-android-armeabi-v7a-debug'
|
|
path: 'app/android/build/outputs/apk/debug/android-armeabi-v7a-debug.apk'
|
|
overwrite: 'true'
|
|
- id: 'step-15'
|
|
name: 'Build Android Release APKs'
|
|
env:
|
|
signing_release_storeFileFromRoot: '${{ steps.step-9.outputs.filePath }}'
|
|
signing_release_storePassword: '${{ secrets.SIGNING_RELEASE_STOREPASSWORD }}'
|
|
signing_release_keyAlias: '${{ secrets.SIGNING_RELEASE_KEYALIAS }}'
|
|
signing_release_keyPassword: '${{ secrets.SIGNING_RELEASE_KEYPASSWORD }}'
|
|
run: './gradlew assembleRelease "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx4g" "--parallel" "-Pani.android.abis=arm64-v8a"'
|
|
if: '${{ (github.repository == ''open-ani/animeko'') && (!(github.event_name == ''pull_request'')) }}'
|
|
- id: 'step-16'
|
|
name: 'Upload Android Release APK arm64-v8a'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-android-arm64-v8a-release'
|
|
path: 'app/android/build/outputs/apk/release/android-arm64-v8a-release.apk'
|
|
overwrite: 'true'
|
|
- id: 'step-17'
|
|
name: 'Upload Android Release APK x86_64'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-android-x86_64-release'
|
|
path: 'app/android/build/outputs/apk/release/android-x86_64-release.apk'
|
|
overwrite: 'true'
|
|
- id: 'step-18'
|
|
name: 'Upload Android Release APK armeabi-v7a'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-android-armeabi-v7a-release'
|
|
path: 'app/android/build/outputs/apk/release/android-armeabi-v7a-release.apk'
|
|
overwrite: 'true'
|
|
- id: 'step-19'
|
|
name: 'Check'
|
|
uses: 'nick-fields/retry@v2'
|
|
with:
|
|
timeout_minutes: '60'
|
|
max_attempts: '2'
|
|
command: './gradlew check "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx4g" "--parallel" "-Pani.android.abis=arm64-v8a"'
|
|
- id: 'step-20'
|
|
name: 'Package Desktop'
|
|
run: './gradlew packageReleaseDistributionForCurrentOS "--scan" "--no-configuration-cache" "-Porg.gradle.daemon.idletimeout=60000" "-Pkotlin.native.ignoreDisabledTargets=true" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx4g" "--parallel" "-Pani.android.abis=arm64-v8a"'
|
|
- id: 'step-21'
|
|
name: 'Upload compose logs'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'compose-logs-self-hosted-macos-15'
|
|
path: 'app/desktop/build/compose/logs'
|
|
- id: 'step-22'
|
|
name: 'Upload macOS dmg'
|
|
uses: 'actions/upload-artifact@v4'
|
|
with:
|
|
name: 'ani-macos-dmg-aarch64'
|
|
path: 'app/desktop/build/compose/binaries/main-release/dmg/Ani-*.dmg'
|
|
if-no-files-found: 'error'
|
|
overwrite: 'true'
|
|
- id: 'step-23'
|
|
name: 'Cleanup temp files'
|
|
continue-on-error: true
|
|
run: 'chmod +x ./ci-helper/cleanup-temp-files-macos.sh && ./ci-helper/cleanup-temp-files-macos.sh'
|
|
verify_github-windows-2019:
|
|
name: 'Verify (Windows Server 2019 x86_64 (GitHub))'
|
|
runs-on:
|
|
- 'windows-2019'
|
|
permissions:
|
|
actions: 'read'
|
|
needs:
|
|
- 'build_github-windows-2019'
|
|
if: '${{ needs.build_github-windows-2019.outputs.windowsX64PortableSuccess }}'
|
|
steps:
|
|
- id: 'step-0'
|
|
uses: 'actions/checkout@v4'
|
|
- id: 'step-1'
|
|
name: 'Delete libraries from system'
|
|
continue-on-error: true
|
|
shell: 'powershell'
|
|
run: |-
|
|
Remove-Item -Path "C:\vcpkg\installed\x64-windows\lib\libssl*" -Recurse -Force -Verbose
|
|
Remove-Item -Path "C:\vcpkg\installed\x64-windows\lib\libcrypto*" -Recurse -Force -Verbose
|
|
- id: 'step-2'
|
|
name: 'Download Windows x64 Portable'
|
|
uses: 'actions/download-artifact@v4'
|
|
with:
|
|
name: 'ani-windows-portable'
|
|
path: '${{ github.workspace }}/ci-helper/verify'
|
|
- id: 'step-3'
|
|
name: 'Check that Anitorrent can be loaded'
|
|
timeout-minutes: 5
|
|
shell: 'powershell'
|
|
run: 'powershell.exe -NoProfile -ExecutionPolicy Bypass -File "${{ github.workspace }}/ci-helper/verify/run-ani-test-windows-x64.ps1" "${{ github.workspace }}\ci-helper\verify" "anitorrent-load-test"'
|
|
verify_github-windows-2022:
|
|
name: 'Verify (Windows Server 2022 x86_64 (GitHub))'
|
|
runs-on:
|
|
- 'windows-2022'
|
|
permissions:
|
|
actions: 'read'
|
|
needs:
|
|
- 'build_github-windows-2019'
|
|
if: '${{ needs.build_github-windows-2019.outputs.windowsX64PortableSuccess }}'
|
|
steps:
|
|
- id: 'step-0'
|
|
uses: 'actions/checkout@v4'
|
|
- id: 'step-1'
|
|
name: 'Delete libraries from system'
|
|
continue-on-error: true
|
|
shell: 'powershell'
|
|
run: |-
|
|
Remove-Item -Path "C:\vcpkg\installed\x64-windows\lib\libssl*" -Recurse -Force -Verbose
|
|
Remove-Item -Path "C:\vcpkg\installed\x64-windows\lib\libcrypto*" -Recurse -Force -Verbose
|
|
- id: 'step-2'
|
|
name: 'Download Windows x64 Portable'
|
|
uses: 'actions/download-artifact@v4'
|
|
with:
|
|
name: 'ani-windows-portable'
|
|
path: '${{ github.workspace }}/ci-helper/verify'
|
|
- id: 'step-3'
|
|
name: 'Check that Anitorrent can be loaded'
|
|
timeout-minutes: 5
|
|
shell: 'powershell'
|
|
run: 'powershell.exe -NoProfile -ExecutionPolicy Bypass -File "${{ github.workspace }}/ci-helper/verify/run-ani-test-windows-x64.ps1" "${{ github.workspace }}\ci-helper\verify" "anitorrent-load-test"'
|
|
verify_self-hosted-windows-10:
|
|
name: 'Verify (Windows 10 x86_64 (Self-Hosted))'
|
|
runs-on:
|
|
- 'self-hosted'
|
|
- 'Windows'
|
|
- 'X64'
|
|
permissions:
|
|
actions: 'read'
|
|
needs:
|
|
- 'build_github-windows-2019'
|
|
if: '${{ (github.repository == ''open-ani/animeko'') && (needs.build_github-windows-2019.outputs.windowsX64PortableSuccess) }}'
|
|
steps:
|
|
- id: 'step-0'
|
|
uses: 'actions/checkout@v4'
|
|
- id: 'step-1'
|
|
name: 'Download Windows x64 Portable'
|
|
uses: 'actions/download-artifact@v4'
|
|
with:
|
|
name: 'ani-windows-portable'
|
|
path: '${{ github.workspace }}/ci-helper/verify'
|
|
- id: 'step-2'
|
|
name: 'Check that Anitorrent can be loaded'
|
|
timeout-minutes: 5
|
|
shell: 'powershell'
|
|
run: 'powershell.exe -NoProfile -ExecutionPolicy Bypass -File "${{ github.workspace }}/ci-helper/verify/run-ani-test-windows-x64.ps1" "${{ github.workspace }}\ci-helper\verify" "anitorrent-load-test"'
|
|
verify_self-hosted-macos-15:
|
|
name: 'Verify (macOS 15 AArch64 (Self-Hosted))'
|
|
runs-on:
|
|
- 'self-hosted'
|
|
- 'macOS'
|
|
- 'ARM64'
|
|
permissions:
|
|
actions: 'read'
|
|
needs:
|
|
- 'build_self-hosted-macos-15'
|
|
if: '${{ (github.repository == ''open-ani/animeko'') && (needs.build_self-hosted-macos-15.outputs.macosAarch64DmgSuccess) }}'
|
|
steps:
|
|
- id: 'step-0'
|
|
uses: 'actions/checkout@v4'
|
|
- id: 'step-1'
|
|
name: 'Download DMG'
|
|
uses: 'actions/download-artifact@v4'
|
|
with:
|
|
name: 'ani-macos-dmg-aarch64'
|
|
- id: 'step-2'
|
|
name: 'Check that Anitorrent can be loaded'
|
|
timeout-minutes: 5
|
|
run: '"$GITHUB_WORKSPACE/ci-helper/verify/run-ani-test-macos-aarch64.sh" "$GITHUB_WORKSPACE"/*.dmg anitorrent-load-test'
|
|
verify_github-macos-14:
|
|
name: 'Verify (macOS 14 AArch64 (GitHub))'
|
|
runs-on:
|
|
- 'macos-14'
|
|
permissions:
|
|
actions: 'read'
|
|
needs:
|
|
- 'build_self-hosted-macos-15'
|
|
if: '${{ needs.build_self-hosted-macos-15.outputs.macosAarch64DmgSuccess }}'
|
|
steps:
|
|
- id: 'step-0'
|
|
uses: 'actions/checkout@v4'
|
|
- id: 'step-1'
|
|
name: 'Delete libraries from system'
|
|
continue-on-error: true
|
|
run: |-
|
|
sudo rm -rfv /usr/local/lib/libssl* || true
|
|
sudo rm -rfv /usr/local/lib/libcrypto* || true
|
|
sudo rm -rfv /opt/homebrew/lib/libssl* || true
|
|
sudo rm -rfv /opt/homebrew/lib/libcrypto* || true
|
|
- id: 'step-2'
|
|
name: 'Download DMG'
|
|
uses: 'actions/download-artifact@v4'
|
|
with:
|
|
name: 'ani-macos-dmg-aarch64'
|
|
- id: 'step-3'
|
|
name: 'Check that Anitorrent can be loaded'
|
|
timeout-minutes: 5
|
|
run: '"$GITHUB_WORKSPACE/ci-helper/verify/run-ani-test-macos-aarch64.sh" "$GITHUB_WORKSPACE"/*.dmg anitorrent-load-test'
|
|
verify_github-macos-15:
|
|
name: 'Verify (macOS 15 AArch64 (GitHub))'
|
|
runs-on:
|
|
- 'macos-15'
|
|
permissions:
|
|
actions: 'read'
|
|
needs:
|
|
- 'build_self-hosted-macos-15'
|
|
if: '${{ needs.build_self-hosted-macos-15.outputs.macosAarch64DmgSuccess }}'
|
|
steps:
|
|
- id: 'step-0'
|
|
uses: 'actions/checkout@v4'
|
|
- id: 'step-1'
|
|
name: 'Delete libraries from system'
|
|
continue-on-error: true
|
|
run: |-
|
|
sudo rm -rfv /usr/local/lib/libssl* || true
|
|
sudo rm -rfv /usr/local/lib/libcrypto* || true
|
|
sudo rm -rfv /opt/homebrew/lib/libssl* || true
|
|
sudo rm -rfv /opt/homebrew/lib/libcrypto* || true
|
|
- id: 'step-2'
|
|
name: 'Download DMG'
|
|
uses: 'actions/download-artifact@v4'
|
|
with:
|
|
name: 'ani-macos-dmg-aarch64'
|
|
- id: 'step-3'
|
|
name: 'Check that Anitorrent can be loaded'
|
|
timeout-minutes: 5
|
|
run: '"$GITHUB_WORKSPACE/ci-helper/verify/run-ani-test-macos-aarch64.sh" "$GITHUB_WORKSPACE"/*.dmg anitorrent-load-test'
|