diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0435c46910..03d21e65fe 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -575,16 +575,28 @@ jobs: cp -r app/desktop/build/compose/binaries/main-release/app/Ani/* AppDir/usr cp app/desktop/appResources/linux-x64/AppRun AppDir/AppRun - cp app/desktop/appResources/linux-x64/animeko.desktop AppDir/animeko.desktop + cp app/desktop/appResources/linux-x64/org.openani.animeko.desktop AppDir/org.openani.animeko.desktop cp app/desktop/appResources/linux-x64/icon.png AppDir/icon.png + cp -r app/desktop/appResources/linux-x64/share AppDir/usr/ # Fix permissions chmod a+x AppDir/AppRun chmod a+x AppDir/usr/bin/Ani chmod a+x AppDir/usr/lib/runtime/lib/jcef_helper + # Get and export version + if [ "$GITHUB_REF_TYPE" = "tag" ]; then + export VERSION="${GITHUB_REF_NAME#v}" + else + export VERSION="${GITHUB_HEAD_REF:-$GITHUB_REF_NAME}" + fi + echo VERSION: "$VERSION" + # Build AppImage ARCH=x86_64 ./appimagetool-x86_64.AppImage AppDir + + # Rename AppImage + mv Animeko*.AppImage Animeko-x86_64.AppImage - id: 'step-51' name: 'Upload Linux packages (Attempt #1)' continue-on-error: true @@ -1287,7 +1299,7 @@ jobs: permissions: actions: 'read' needs: - - 'build_self-hosted-macos-15' + - 'build_self-hosted-macos-15' if: '${{ (github.repository == ''open-ani/animeko'') && (needs.build_self-hosted-macos-15.result == ''success'') }}' steps: - id: 'step-0' @@ -1338,7 +1350,7 @@ jobs: permissions: actions: 'read' needs: - - 'build_self-hosted-macos-15' + - 'build_self-hosted-macos-15' if: '${{ needs.build_self-hosted-macos-15.result == ''success'' }}' steps: - id: 'step-0' @@ -1397,7 +1409,7 @@ jobs: permissions: actions: 'read' needs: - - 'build_self-hosted-macos-15' + - 'build_self-hosted-macos-15' if: '${{ needs.build_self-hosted-macos-15.result == ''success'' }}' steps: - id: 'step-0' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 775ddbd60b..18ac1bb1eb 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -748,215 +748,215 @@ jobs: release_github-macos-13: name: 'macOS 13 x86_64 (GitHub)' runs-on: - - 'macos-13' + - 'macos-13' needs: - - 'create-release' + - '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' - continue-on-error: true - run: 'rm local.properties' - - id: 'step-5' - continue-on-error: true - run: |- - echo "ani.dandanplay.app.id=${{ secrets.DANDANPLAY_APP_ID }}" >> local.properties - echo "ani.dandanplay.app.secret=${{ secrets.DANDANPLAY_APP_SECRET }}" >> local.properties - echo "ani.sentry.dsn=${{ secrets.SENTRY_DSN }}" >> local.properties - echo "ani.analytics.server=${{ secrets.ANALYTICS_SERVER }}" >> local.properties - echo "ani.analytics.key=${{ secrets.ANALYTICS_KEY }}" >> local.properties - echo "kotlin.native.ignoreDisabledTargets=true" >> local.properties - - id: 'step-6' - name: 'Resolve JBR location' - shell: 'bash' - run: |- - # Expand jbrLocationExpr - jbr_location_expr='${{ runner.tool_cache }}/jbrsdk_jcef-21.0.6-osx-x64-b895.91.tar.gz' - echo "jbrLocation=$jbr_location_expr" >> $GITHUB_OUTPUT - - id: 'step-7' - name: 'Get JBR 21 for macOS AArch64 (Attempt #1)' - env: - jbrLocation: '${{ steps.step-6.outputs.jbrLocation }}' - continue-on-error: true - timeout-minutes: 180 - shell: 'bash' - run: |- - jbr_location="$jbrLocation" - checksum_url="https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_jcef-21.0.6-osx-x64-b895.91.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.6-osx-x64-b895.91.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-8' - name: 'Get JBR 21 for macOS AArch64 (Attempt #2)' - env: - jbrLocation: '${{ steps.step-6.outputs.jbrLocation }}' - continue-on-error: false - timeout-minutes: 180 - shell: 'bash' - run: |- - jbr_location="$jbrLocation" - checksum_url="https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_jcef-21.0.6-osx-x64-b895.91.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.6-osx-x64-b895.91.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" - if: '${{ steps.step-7.outcome == ''failure'' }}' - - id: 'step-9' - name: 'Setup JBR 21 for macOS ' - uses: 'gmitch215/setup-java@6d2c5e1f82f180ae79f799f0ed6e3e5efb4e664d' - with: - java-version: '21' - distribution: 'jdkfile' - jdkFile: '${{ steps.step-6.outputs.jbrLocation }}' - env: - GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' - - id: 'step-10' - name: 'Dump Local Properties' - run: 'echo "jvm.toolchain.version=21" >> local.properties' - - id: 'step-11' - run: 'chmod -R 777 .' - - id: 'step-12' - name: 'Setup Gradle' - uses: 'gradle/actions/setup-gradle@v3' - with: - cache-disabled: 'true' - - id: 'step-13' - name: 'Clean and download dependencies (Attempt #1)' - continue-on-error: true - timeout-minutes: 180 - run: './gradlew --scan "--stacktrace" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' - - id: 'step-14' - name: 'Clean and download dependencies (Attempt #2)' - continue-on-error: false - timeout-minutes: 180 - run: './gradlew --scan "--stacktrace" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' - if: '${{ steps.step-13.outcome == ''failure'' }}' - - id: 'step-15' - name: 'Update Release Version Name (Attempt #1)' - 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 }}' - continue-on-error: true - timeout-minutes: 180 - run: './gradlew updateReleaseVersionNameFromGit "--no-configuration-cache" "--scan" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' - - id: 'step-16' - name: 'Update Release Version Name (Attempt #2)' - 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 }}' - continue-on-error: false - timeout-minutes: 180 - run: './gradlew updateReleaseVersionNameFromGit "--no-configuration-cache" "--scan" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' - if: '${{ steps.step-15.outcome == ''failure'' }}' - - id: 'step-17' - name: 'Compile Kotlin (Attempt #1)' - continue-on-error: true - timeout-minutes: 180 - run: './gradlew compileKotlin compileCommonMainKotlinMetadata compileJvmMainKotlinMetadata compileKotlinDesktop compileKotlinMetadata "--scan" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' - - id: 'step-18' - name: 'Compile Kotlin (Attempt #2)' - continue-on-error: false - timeout-minutes: 180 - run: './gradlew compileKotlin compileCommonMainKotlinMetadata compileJvmMainKotlinMetadata compileKotlinDesktop compileKotlinMetadata "--scan" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' - if: '${{ steps.step-17.outcome == ''failure'' }}' - - id: 'step-19' - name: 'Upload Desktop Installers (Attempt #1)' - 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 }}' - continue-on-error: true - timeout-minutes: 180 - run: './gradlew :ci-helper:uploadDesktopInstallers "--no-configuration-cache" "--scan" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' - - id: 'step-20' - name: 'Upload Desktop Installers (Attempt #2)' - 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 }}' - continue-on-error: false - timeout-minutes: 180 - run: './gradlew :ci-helper:uploadDesktopInstallers "--no-configuration-cache" "--scan" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' - if: '${{ steps.step-19.outcome == ''failure'' }}' - - id: 'step-21' - name: 'Upload compose logs' - uses: 'actions/upload-artifact@v4' - with: - name: 'compose-logs-github-macos-13' - path: 'app/desktop/build/compose/logs' - if: '${{ always() }}' + - 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' + continue-on-error: true + run: 'rm local.properties' + - id: 'step-5' + continue-on-error: true + run: |- + echo "ani.dandanplay.app.id=${{ secrets.DANDANPLAY_APP_ID }}" >> local.properties + echo "ani.dandanplay.app.secret=${{ secrets.DANDANPLAY_APP_SECRET }}" >> local.properties + echo "ani.sentry.dsn=${{ secrets.SENTRY_DSN }}" >> local.properties + echo "ani.analytics.server=${{ secrets.ANALYTICS_SERVER }}" >> local.properties + echo "ani.analytics.key=${{ secrets.ANALYTICS_KEY }}" >> local.properties + echo "kotlin.native.ignoreDisabledTargets=true" >> local.properties + - id: 'step-6' + name: 'Resolve JBR location' + shell: 'bash' + run: |- + # Expand jbrLocationExpr + jbr_location_expr='${{ runner.tool_cache }}/jbrsdk_jcef-21.0.6-osx-x64-b895.91.tar.gz' + echo "jbrLocation=$jbr_location_expr" >> $GITHUB_OUTPUT + - id: 'step-7' + name: 'Get JBR 21 for macOS AArch64 (Attempt #1)' + env: + jbrLocation: '${{ steps.step-6.outputs.jbrLocation }}' + continue-on-error: true + timeout-minutes: 180 + shell: 'bash' + run: |- + jbr_location="$jbrLocation" + checksum_url="https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_jcef-21.0.6-osx-x64-b895.91.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.6-osx-x64-b895.91.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-8' + name: 'Get JBR 21 for macOS AArch64 (Attempt #2)' + env: + jbrLocation: '${{ steps.step-6.outputs.jbrLocation }}' + continue-on-error: false + timeout-minutes: 180 + shell: 'bash' + run: |- + jbr_location="$jbrLocation" + checksum_url="https://cache-redirector.jetbrains.com/intellij-jbr/jbrsdk_jcef-21.0.6-osx-x64-b895.91.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.6-osx-x64-b895.91.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" + if: '${{ steps.step-7.outcome == ''failure'' }}' + - id: 'step-9' + name: 'Setup JBR 21 for macOS ' + uses: 'gmitch215/setup-java@6d2c5e1f82f180ae79f799f0ed6e3e5efb4e664d' + with: + java-version: '21' + distribution: 'jdkfile' + jdkFile: '${{ steps.step-6.outputs.jbrLocation }}' + env: + GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' + - id: 'step-10' + name: 'Dump Local Properties' + run: 'echo "jvm.toolchain.version=21" >> local.properties' + - id: 'step-11' + run: 'chmod -R 777 .' + - id: 'step-12' + name: 'Setup Gradle' + uses: 'gradle/actions/setup-gradle@v3' + with: + cache-disabled: 'true' + - id: 'step-13' + name: 'Clean and download dependencies (Attempt #1)' + continue-on-error: true + timeout-minutes: 180 + run: './gradlew --scan "--stacktrace" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' + - id: 'step-14' + name: 'Clean and download dependencies (Attempt #2)' + continue-on-error: false + timeout-minutes: 180 + run: './gradlew --scan "--stacktrace" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' + if: '${{ steps.step-13.outcome == ''failure'' }}' + - id: 'step-15' + name: 'Update Release Version Name (Attempt #1)' + 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 }}' + continue-on-error: true + timeout-minutes: 180 + run: './gradlew updateReleaseVersionNameFromGit "--no-configuration-cache" "--scan" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' + - id: 'step-16' + name: 'Update Release Version Name (Attempt #2)' + 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 }}' + continue-on-error: false + timeout-minutes: 180 + run: './gradlew updateReleaseVersionNameFromGit "--no-configuration-cache" "--scan" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' + if: '${{ steps.step-15.outcome == ''failure'' }}' + - id: 'step-17' + name: 'Compile Kotlin (Attempt #1)' + continue-on-error: true + timeout-minutes: 180 + run: './gradlew compileKotlin compileCommonMainKotlinMetadata compileJvmMainKotlinMetadata compileKotlinDesktop compileKotlinMetadata "--scan" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' + - id: 'step-18' + name: 'Compile Kotlin (Attempt #2)' + continue-on-error: false + timeout-minutes: 180 + run: './gradlew compileKotlin compileCommonMainKotlinMetadata compileJvmMainKotlinMetadata compileKotlinDesktop compileKotlinMetadata "--scan" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' + if: '${{ steps.step-17.outcome == ''failure'' }}' + - id: 'step-19' + name: 'Upload Desktop Installers (Attempt #1)' + 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 }}' + continue-on-error: true + timeout-minutes: 180 + run: './gradlew :ci-helper:uploadDesktopInstallers "--no-configuration-cache" "--scan" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' + - id: 'step-20' + name: 'Upload Desktop Installers (Attempt #2)' + 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 }}' + continue-on-error: false + timeout-minutes: 180 + run: './gradlew :ci-helper:uploadDesktopInstallers "--no-configuration-cache" "--scan" "-Porg.gradle.daemon.idletimeout=60000" "-Dfile.encoding=UTF-8" "-Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g" "-Dkotlin.daemon.jvm.options=-Xmx6g" "-Pani.android.abis=arm64-v8a"' + if: '${{ steps.step-19.outcome == ''failure'' }}' + - id: 'step-21' + name: 'Upload compose logs' + uses: 'actions/upload-artifact@v4' + with: + name: 'compose-logs-github-macos-13' + path: 'app/desktop/build/compose/logs' + if: '${{ always() }}' release_github-ubuntu-2404: name: 'Ubuntu 24.04 x86_64 (GitHub)' runs-on: @@ -1487,16 +1487,28 @@ jobs: cp -r app/desktop/build/compose/binaries/main-release/app/Ani/* AppDir/usr cp app/desktop/appResources/linux-x64/AppRun AppDir/AppRun - cp app/desktop/appResources/linux-x64/animeko.desktop AppDir/animeko.desktop + cp app/desktop/appResources/linux-x64/org.openani.animeko.desktop AppDir/org.openani.animeko.desktop cp app/desktop/appResources/linux-x64/icon.png AppDir/icon.png + cp -r app/desktop/appResources/linux-x64/share AppDir/usr/ # Fix permissions chmod a+x AppDir/AppRun chmod a+x AppDir/usr/bin/Ani chmod a+x AppDir/usr/lib/runtime/lib/jcef_helper + # Get and export version + if [ "$GITHUB_REF_TYPE" = "tag" ]; then + export VERSION="${GITHUB_REF_NAME#v}" + else + export VERSION="${GITHUB_HEAD_REF:-$GITHUB_REF_NAME}" + fi + echo VERSION: "$VERSION" + # Build AppImage ARCH=x86_64 ./appimagetool-x86_64.AppImage AppDir + + # Rename AppImage + mv Animeko*.AppImage Animeko-x86_64.AppImage - id: 'step-63' name: 'Upload Linux packages (Attempt #1)' continue-on-error: true diff --git a/.github/workflows/src.main.kts b/.github/workflows/src.main.kts index 2940a0fe78..a0d7c4de56 100755 --- a/.github/workflows/src.main.kts +++ b/.github/workflows/src.main.kts @@ -1653,16 +1653,28 @@ class WithMatrix( cp -r app/desktop/build/compose/binaries/main-release/app/Ani/* AppDir/usr cp app/desktop/appResources/linux-x64/AppRun AppDir/AppRun - cp app/desktop/appResources/linux-x64/animeko.desktop AppDir/animeko.desktop + cp app/desktop/appResources/linux-x64/org.openani.animeko.desktop AppDir/org.openani.animeko.desktop cp app/desktop/appResources/linux-x64/icon.png AppDir/icon.png + cp -r app/desktop/appResources/linux-x64/share AppDir/usr/ # Fix permissions chmod a+x AppDir/AppRun chmod a+x AppDir/usr/bin/Ani chmod a+x AppDir/usr/lib/runtime/lib/jcef_helper + # Get and export version + if [ "$GITHUB_REF_TYPE" = "tag" ]; then + export VERSION="${GITHUB_REF_NAME#v}" + else + export VERSION="${GITHUB_HEAD_REF:-$GITHUB_REF_NAME}" + fi + echo VERSION: "$VERSION" + # Build AppImage ARCH=x86_64 ./appimagetool-x86_64.AppImage AppDir + + # Rename AppImage + mv Animeko*.AppImage Animeko-x86_64.AppImage """.trimIndent(), ) // Expected output path: Animeko-x86_64.AppImage. diff --git a/app/desktop/appResources/linux-x64/org.openani.animeko.desktop b/app/desktop/appResources/linux-x64/org.openani.animeko.desktop new file mode 120000 index 0000000000..23451f492e --- /dev/null +++ b/app/desktop/appResources/linux-x64/org.openani.animeko.desktop @@ -0,0 +1 @@ +share/applications/org.openani.animeko.desktop \ No newline at end of file diff --git a/app/desktop/appResources/linux-x64/animeko.desktop b/app/desktop/appResources/linux-x64/share/applications/org.openani.animeko.desktop similarity index 100% rename from app/desktop/appResources/linux-x64/animeko.desktop rename to app/desktop/appResources/linux-x64/share/applications/org.openani.animeko.desktop diff --git a/app/desktop/appResources/linux-x64/share/metainfo/org.openani.animeko.appdata.xml b/app/desktop/appResources/linux-x64/share/metainfo/org.openani.animeko.appdata.xml new file mode 100644 index 0000000000..ddb7c583af --- /dev/null +++ b/app/desktop/appResources/linux-x64/share/metainfo/org.openani.animeko.appdata.xml @@ -0,0 +1,21 @@ + + + org.openani.animeko + CC0-1.0 + AGPL-3.0 + Animeko + 集找番、追番、看番的一站式弹幕追番平台 + +

Animeko 是一个集找番、追番、看番于一体的弹幕追番平台。

+
+ org.openani.animeko.desktop + https://animeko.org/ + + + https://animeko.org/showcase/pc/1.jpg + + + + org.openani.animeko.desktop + +