# 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'