Fix media resolver not attached #315
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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/[email protected]' | |
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<<EOF" >> $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/[email protected]' | |
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/[email protected]' | |
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/[email protected]' | |
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/[email protected]' | |
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/[email protected]' | |
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/[email protected]' | |
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/[email protected]' | |
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/[email protected]' | |
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' |