# 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: 'Release' on: push: tags: - 'v*' permissions: actions: 'write' contents: 'write' jobs: create-release: name: 'Create Release' runs-on: 'ubuntu-latest' outputs: uploadUrl: '${{ steps.step-4.outputs.upload_url }}' id: '${{ steps.step-4.outputs.id }}' steps: - id: 'step-0' uses: 'actions/checkout@v4' - id: 'step-1' name: 'Get Tag' uses: 'dawidd6/action-get-tag@v1' - id: 'step-2' uses: 'bhowell2/github-substring-action@v1.0.0' with: value: '${{ steps.step-1.outputs.tag }}' index_of_str: 'v' default_return_value: '${{ steps.step-1.outputs.tag }}' - id: 'step-3' name: 'Generate Release Notes' run: |- # Specify the file path FILE_PATH="ci-helper/release-template.md" # Read the file content file_content=$(cat "$FILE_PATH") modified_content="$file_content" # Replace 'string_to_find' with 'string_to_replace_with' in the content modified_content="${modified_content//\$GIT_TAG/${{ steps.step-1.outputs.tag }}}" modified_content="${modified_content//\$TAG_VERSION/${{ steps.step-2.outputs.substring }}}" # Output the result as a step output echo "result<> $GITHUB_OUTPUT echo "$modified_content" >> $GITHUB_OUTPUT echo "EOF" >> $GITHUB_OUTPUT - id: 'step-4' name: 'Create Release' uses: 'softprops/action-gh-release@v1' with: body: '${{ steps.step-3.outputs.result }}' name: '${{ steps.step-2.outputs.substring }}' tag_name: '${{ steps.step-1.outputs.tag }}' draft: 'true' prerelease: '${{ contains(steps.step-1.outputs.tag, ''-'') }}' env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' release_self-hosted-windows-10: name: 'Windows 10 x86_64 (Self-Hosted)' runs-on: - 'self-hosted' - 'Windows' - 'X64' needs: - 'create-release' if: '${{ github.repository == ''open-ani/animeko'' }}' steps: - id: 'step-0' uses: 'actions/checkout@v4' with: submodules: 'recursive' - id: 'step-1' name: 'Get Tag' uses: 'dawidd6/action-get-tag@v1' - id: 'step-2' uses: 'bhowell2/github-substring-action@v1.0.0' with: value: '${{ steps.step-1.outputs.tag }}' index_of_str: 'v' default_return_value: '${{ steps.step-1.outputs.tag }}' - id: 'step-3' 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-4' run: 'echo "jvm.toolchain.version=21" >> local.properties' - 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" "-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: 'Update Release Version Name' env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' GITHUB_REPOSITORY: '${{ secrets.GITHUB_REPOSITORY }}' CI_RELEASE_ID: '${{ needs.create-release.outputs.id }}' CI_TAG: '${{ steps.step-1.outputs.tag }}' run: './gradlew updateReleaseVersionNameFromGit "--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-8' 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"' release_github-windows-2019: name: 'Windows Server 2019 x86_64' runs-on: - 'windows-2019' needs: - 'create-release' steps: - id: 'step-0' uses: 'actions/checkout@v4' with: submodules: 'recursive' - id: 'step-1' name: 'Get Tag' uses: 'dawidd6/action-get-tag@v1' - id: 'step-2' uses: 'bhowell2/github-substring-action@v1.0.0' with: value: '${{ steps.step-1.outputs.tag }}' index_of_str: 'v' default_return_value: '${{ steps.step-1.outputs.tag }}' - id: 'step-3' 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-4' run: 'echo "jvm.toolchain.version=21" >> local.properties' - 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" "-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: 'Update Release Version Name' env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' GITHUB_REPOSITORY: '${{ secrets.GITHUB_REPOSITORY }}' CI_RELEASE_ID: '${{ needs.create-release.outputs.id }}' CI_TAG: '${{ steps.step-1.outputs.tag }}' run: './gradlew updateReleaseVersionNameFromGit "--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: '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-9' name: 'Upload Desktop Installers' env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' GITHUB_REPOSITORY: '${{ secrets.GITHUB_REPOSITORY }}' CI_RELEASE_ID: '${{ needs.create-release.outputs.id }}' CI_TAG: '${{ steps.step-1.outputs.tag }}' UPLOAD_TO_S3: 'true' AWS_ACCESS_KEY_ID: '${{ secrets.AWS_ACCESS_KEY_ID }}' AWS_SECRET_ACCESS_KEY: '${{ secrets.AWS_SECRET_ACCESS_KEY }}' AWS_BASEURL: '${{ secrets.AWS_BASEURL }}' AWS_REGION: '${{ secrets.AWS_REGION }}' AWS_BUCKET: '${{ secrets.AWS_BUCKET }}' run: './gradlew :ci-helper:uploadDesktopInstallers "--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-10' name: 'Upload compose logs' uses: 'actions/upload-artifact@v4' with: name: 'compose-logs-github-windows-2019' path: 'app/desktop/build/compose/logs' release_github-macos-13: name: 'macOS 13 x86_64 (GitHub)' runs-on: - 'macos-13' needs: - 'create-release' steps: - id: 'step-0' uses: 'actions/checkout@v4' with: submodules: 'recursive' - id: 'step-1' name: 'Get Tag' uses: 'dawidd6/action-get-tag@v1' - id: 'step-2' uses: 'bhowell2/github-substring-action@v1.0.0' with: value: '${{ steps.step-1.outputs.tag }}' index_of_str: 'v' default_return_value: '${{ steps.step-1.outputs.tag }}' - id: 'step-3' 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-4' 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-5' run: 'echo "jvm.toolchain.version=21" >> local.properties' - id: 'step-6' run: 'chmod -R 777 .' - id: 'step-7' name: 'Setup Gradle' uses: 'gradle/actions/setup-gradle@v3' with: cache-disabled: 'true' - id: 'step-8' 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-9' name: 'Update Release Version Name' env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' GITHUB_REPOSITORY: '${{ secrets.GITHUB_REPOSITORY }}' CI_RELEASE_ID: '${{ needs.create-release.outputs.id }}' CI_TAG: '${{ steps.step-1.outputs.tag }}' run: './gradlew updateReleaseVersionNameFromGit "--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: '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-11' 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-12' 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-13' 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-14' 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-15' 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-16' 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-17' name: 'Build Android Release APKs' env: signing_release_storeFileFromRoot: '${{ steps.step-10.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-18' 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-19' 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-20' 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-21' 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-22' name: 'Upload Android APK for Release' env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' GITHUB_REPOSITORY: '${{ secrets.GITHUB_REPOSITORY }}' CI_RELEASE_ID: '${{ needs.create-release.outputs.id }}' CI_TAG: '${{ steps.step-1.outputs.tag }}' UPLOAD_TO_S3: 'true' AWS_ACCESS_KEY_ID: '${{ secrets.AWS_ACCESS_KEY_ID }}' AWS_SECRET_ACCESS_KEY: '${{ secrets.AWS_SECRET_ACCESS_KEY }}' AWS_BASEURL: '${{ secrets.AWS_BASEURL }}' AWS_REGION: '${{ secrets.AWS_REGION }}' AWS_BUCKET: '${{ secrets.AWS_BUCKET }}' run: './gradlew :ci-helper:uploadAndroidApk "--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-23' name: 'Generate QR code for APK (GitHub)' uses: 'snow-actions/qrcode@v1.0.0' with: text: 'https://github.com/Him188/ani/releases/download/${{ steps.step-1.outputs.tag }}/ani-${{ steps.step-2.outputs.substring }}-universal.apk' path: 'apk-qrcode-github.png' - id: 'step-24' name: 'Generate QR code for APK (Cloudflare)' uses: 'snow-actions/qrcode@v1.0.0' with: text: 'https://d.myani.org/${{ steps.step-1.outputs.tag }}/ani-${{ steps.step-2.outputs.substring }}-universal.apk' path: 'apk-qrcode-cloudflare.png' - id: 'step-25' name: 'Upload QR code' env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' GITHUB_REPOSITORY: '${{ secrets.GITHUB_REPOSITORY }}' CI_RELEASE_ID: '${{ needs.create-release.outputs.id }}' CI_TAG: '${{ steps.step-1.outputs.tag }}' UPLOAD_TO_S3: 'true' AWS_ACCESS_KEY_ID: '${{ secrets.AWS_ACCESS_KEY_ID }}' AWS_SECRET_ACCESS_KEY: '${{ secrets.AWS_SECRET_ACCESS_KEY }}' AWS_BASEURL: '${{ secrets.AWS_BASEURL }}' AWS_REGION: '${{ secrets.AWS_REGION }}' AWS_BUCKET: '${{ secrets.AWS_BUCKET }}' run: './gradlew :ci-helper:uploadAndroidApkQR "--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-26' name: 'Upload compose logs' uses: 'actions/upload-artifact@v4' with: name: 'compose-logs-github-macos-13' path: 'app/desktop/build/compose/logs' release_self-hosted-macos-15: name: 'macOS 15 AArch64 (Self-Hosted)' runs-on: - 'self-hosted' - 'macOS' - 'ARM64' needs: - 'create-release' if: '${{ github.repository == ''open-ani/animeko'' }}' steps: - id: 'step-0' uses: 'actions/checkout@v4' with: submodules: 'recursive' - id: 'step-1' name: 'Get Tag' uses: 'dawidd6/action-get-tag@v1' - id: 'step-2' uses: 'bhowell2/github-substring-action@v1.0.0' with: value: '${{ steps.step-1.outputs.tag }}' index_of_str: 'v' default_return_value: '${{ steps.step-1.outputs.tag }}' - id: 'step-3' 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-4' name: 'Get JBR 21 for macOS AArch64' env: jbrLocation: '${{ steps.step-3.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-5' name: 'Setup JBR 21 for macOS AArch64' uses: 'gmitch215/setup-java@6d2c5e1f82f180ae79f799f0ed6e3e5efb4e664d' with: java-version: '21' distribution: 'jdkfile' jdkFile: '${{ steps.step-3.outputs.jbrLocation }}' env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' - id: 'step-6' run: 'echo "jvm.toolchain.version=21" >> local.properties' - id: 'step-7' run: 'chmod -R 777 .' - id: 'step-8' name: 'Setup Gradle' uses: 'gradle/actions/setup-gradle@v3' with: cache-disabled: 'true' - id: 'step-9' 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-10' name: 'Update Release Version Name' env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' GITHUB_REPOSITORY: '${{ secrets.GITHUB_REPOSITORY }}' CI_RELEASE_ID: '${{ needs.create-release.outputs.id }}' CI_TAG: '${{ steps.step-1.outputs.tag }}' run: './gradlew updateReleaseVersionNameFromGit "--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: '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-12' 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-13' 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-14' 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-15' 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-16' 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-17' name: 'Build Android Release APKs' env: signing_release_storeFileFromRoot: '${{ steps.step-11.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-18' 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-19' 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-20' 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-21' name: 'Upload Android APK for Release' env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' GITHUB_REPOSITORY: '${{ secrets.GITHUB_REPOSITORY }}' CI_RELEASE_ID: '${{ needs.create-release.outputs.id }}' CI_TAG: '${{ steps.step-1.outputs.tag }}' UPLOAD_TO_S3: 'true' AWS_ACCESS_KEY_ID: '${{ secrets.AWS_ACCESS_KEY_ID }}' AWS_SECRET_ACCESS_KEY: '${{ secrets.AWS_SECRET_ACCESS_KEY }}' AWS_BASEURL: '${{ secrets.AWS_BASEURL }}' AWS_REGION: '${{ secrets.AWS_REGION }}' AWS_BUCKET: '${{ secrets.AWS_BUCKET }}' run: './gradlew :ci-helper:uploadAndroidApk "--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-22' name: 'Upload Desktop Installers' env: GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' GITHUB_REPOSITORY: '${{ secrets.GITHUB_REPOSITORY }}' CI_RELEASE_ID: '${{ needs.create-release.outputs.id }}' CI_TAG: '${{ steps.step-1.outputs.tag }}' UPLOAD_TO_S3: 'true' AWS_ACCESS_KEY_ID: '${{ secrets.AWS_ACCESS_KEY_ID }}' AWS_SECRET_ACCESS_KEY: '${{ secrets.AWS_SECRET_ACCESS_KEY }}' AWS_BASEURL: '${{ secrets.AWS_BASEURL }}' AWS_REGION: '${{ secrets.AWS_REGION }}' AWS_BUCKET: '${{ secrets.AWS_BUCKET }}' run: './gradlew :ci-helper:uploadDesktopInstallers "--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-23' 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-24' 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'