diff --git a/.github/workflows/auto-tag.yml b/.github/workflows/auto-tag.yml index e8fca8ef..c15a4dbd 100644 --- a/.github/workflows/auto-tag.yml +++ b/.github/workflows/auto-tag.yml @@ -15,7 +15,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 2 # Need previous commit to compare diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9919c7aa..903d5dcf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,10 +23,10 @@ jobs: rust: ${{ steps.filter.outputs.rust }} steps: - name: Checkout repository - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Filter paths - uses: dorny/paths-filter@0e4a8c6effa4802afeda77dc8d303f8176d7dfad # v3 + uses: dorny/paths-filter@ceb8a2b8f2d89434be7ff52d3de7ec3738c5cc9d # v4.0.3 id: filter with: filters: | @@ -98,7 +98,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Setup Flutter uses: subosito/flutter-action@1a449444c387b1966244ae4d4f8c696479add0b2 # v2 @@ -108,7 +108,7 @@ jobs: cache: true - name: Cache pub dependencies - uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5 + uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: ~/.pub-cache key: pub-${{ runner.os }}-${{ hashFiles('pubspec.lock') }} @@ -138,10 +138,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Setup Java for Android SDK tools - uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1 with: distribution: "temurin" java-version: "25" @@ -159,10 +159,10 @@ jobs: run: bash scripts/check_rust_backend.sh - name: Install Android NDK - run: '"$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" "ndk;29.0.14206865"' + run: '"$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" "ndk;30.0.16248370"' - name: Build Android ARM32 and ARM64 libraries - run: ANDROID_NDK_HOME="$ANDROID_HOME/ndk/29.0.14206865" bash scripts/build_rust_backend.sh android + run: ANDROID_NDK_HOME="$ANDROID_HOME/ndk/30.0.16248370" bash scripts/build_rust_backend.sh android rust-ios: name: Rust iOS libraries & release application @@ -174,7 +174,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Activate pinned Rust toolchain working-directory: rust_backend @@ -223,10 +223,10 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Setup Java - uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1 with: distribution: "temurin" java-version: "25" @@ -239,9 +239,9 @@ jobs: cache: true - name: Setup Gradle - uses: gradle/actions/setup-gradle@0723195856401067f7a2779048b490ace7a47d7c # v5 + uses: gradle/actions/setup-gradle@3f5f9adaf7d9fecd50b5935e54106014257a94e6 # v6.4.0 with: - gradle-version: "9.8.0" + gradle-version: "9.8.1" # Cache public dependencies, not transforms of the decrypted SDK. gradle-home-cache-includes: | caches/modules-2 @@ -251,11 +251,11 @@ jobs: run: | yes | "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" --licenses || true "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" \ - "ndk;29.0.14206865" \ + "ndk;30.0.16248370" \ "platforms;android-37.0" \ "build-tools;37.0.0" \ - "cmake;3.22.1" - echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/29.0.14206865" >> "$GITHUB_ENV" + "cmake;4.1.2" + echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/30.0.16248370" >> "$GITHUB_ENV" - name: Test SDK preparation, release selection and APK audits run: | @@ -323,7 +323,7 @@ jobs: sha256sum build/app/outputs/flutter-apk/*release.apk > build/symbols/android/apk-sha256.txt - name: Retain Android debug symbols - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: android-symbols-${{ github.sha }}-${{ github.run_id }}-${{ github.run_attempt }} if-no-files-found: error diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8c37718b..14a00cb2 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -68,7 +68,7 @@ jobs: df -h - name: Checkout repository - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Prepare pinned Discord SDK uses: ./.github/actions/discord-sdk @@ -76,7 +76,7 @@ jobs: passphrase: ${{ secrets.DISCORD_MOBILE_SDK_PASSPHRASE }} - name: Setup Java - uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5 + uses: actions/setup-java@de7274f081f381c8f8158605e0321c36c376e2e6 # v6.0.1 with: distribution: "temurin" java-version: "25" @@ -92,7 +92,7 @@ jobs: # Cache Gradle for faster builds - name: Cache Gradle - uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5 + uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: | ~/.gradle/caches/modules-2 @@ -102,10 +102,10 @@ jobs: restore-keys: gradle-public-dependencies-${{ runner.os }}- - name: Cache Android NDK - uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5 + uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: - path: /usr/local/lib/android/sdk/ndk/29.0.14206865 - key: ndk-29.0.14206865 + path: /usr/local/lib/android/sdk/ndk/30.0.16248370 + key: ndk-30.0.16248370 - name: Install Android SDK & NDK run: | @@ -116,16 +116,16 @@ jobs: # Accept licenses yes | "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" --licenses || true - # Install NDK r29 (supports 16KB page size for Android 15+) + # Install NDK r30 (supports 16KB page size for Android 15+) # Keep the installed platform aligned with compileSdk/targetSdk. "$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager" \ - "ndk;29.0.14206865" \ + "ndk;30.0.16248370" \ "platforms;android-37.0" \ "build-tools;37.0.0" \ - "cmake;3.22.1" + "cmake;4.1.2" # Set NDK path - echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/29.0.14206865" >> "$GITHUB_ENV" + echo "ANDROID_NDK_HOME=$ANDROID_HOME/ndk/30.0.16248370" >> "$GITHUB_ENV" - name: Setup Flutter uses: subosito/flutter-action@1a449444c387b1966244ae4d4f8c696479add0b2 # v2 @@ -135,7 +135,7 @@ jobs: cache: true - name: Cache pub dependencies - uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5 + uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: ~/.pub-cache key: pub-${{ runner.os }}-${{ hashFiles('pubspec.lock') }} @@ -238,7 +238,7 @@ jobs: sha256sum build/app/outputs/flutter-apk/SpotiFLAC-*.apk > build/symbols/android/apk-sha256.txt - name: Retain Android debug symbols - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: android-symbols-${{ needs.get-version.outputs.version }}-${{ github.sha }}-${{ github.run_id }}-${{ github.run_attempt }} if-no-files-found: error @@ -248,7 +248,7 @@ jobs: build/app/outputs/mapping/release/mapping.txt - name: Upload APK artifact - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: android-apk if-no-files-found: error @@ -265,7 +265,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Prepare pinned Discord SDK uses: ./.github/actions/discord-sdk @@ -282,7 +282,7 @@ jobs: # Cache CocoaPods - name: Cache CocoaPods - uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5 + uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: ios/Pods key: pods-rust-${{ runner.os }}-${{ hashFiles('ios/Podfile', 'ios/Podfile.lock', 'rust_backend/SpotiFLACBackend.podspec', 'rust_backend/Cargo.lock') }} @@ -296,7 +296,7 @@ jobs: cache: true - name: Cache pub dependencies - uses: actions/cache@caa296126883cff596d87d8935842f9db880ef25 # v5 + uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0 with: path: ~/.pub-cache key: pub-${{ runner.os }}-${{ hashFiles('pubspec.lock') }} @@ -387,7 +387,7 @@ jobs: fi - name: Upload IPA artifact - uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f # v6 + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: ios-ipa path: build/ios/ipa/SpotiFLAC-*.ipa @@ -400,13 +400,13 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 # Full history needed for git-cliff - name: Generate changelog with git-cliff id: changelog - uses: orhun/git-cliff-action@f50e11560dce63f7c33227798f90b924471a88b5 # v4 + uses: orhun/git-cliff-action@a9a95522b26fe6403f7bb24031f21fb573d0f5ff # v4.9.1 with: config: cliff.toml args: --latest --strip header @@ -420,13 +420,13 @@ jobs: cat /tmp/changelog.txt - name: Download Android APK - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7 + uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2 with: name: android-apk path: ./release - name: Download iOS IPA - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7 + uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2 with: name: ios-ipa path: ./release @@ -479,7 +479,7 @@ jobs: cat /tmp/release_body.txt - name: Create Release - uses: softprops/action-gh-release@3bb12739c298aeb8a4eeaf626c5b8d85266b0e65 # v2 + uses: softprops/action-gh-release@efb35369e0ad2afab669f228072c1b0d510eae64 # v3.0.3 with: tag_name: ${{ needs.get-version.outputs.version }} name: SpotiFLAC-Mobile ${{ needs.get-version.outputs.version }} @@ -499,12 +499,12 @@ jobs: steps: - name: Checkout main branch - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: ref: main - name: Download iOS IPA - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7 + uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2 with: name: ios-ipa path: ./release @@ -575,24 +575,24 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 - name: Download Android APK - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7 + uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2 with: name: android-apk path: ./release - name: Download iOS IPA - uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7 + uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2 with: name: ios-ipa path: ./release - name: Generate changelog with git-cliff for Telegram - uses: orhun/git-cliff-action@f50e11560dce63f7c33227798f90b924471a88b5 # v4 + uses: orhun/git-cliff-action@a9a95522b26fe6403f7bb24031f21fb573d0f5ff # v4.9.1 with: config: cliff.toml args: --latest --strip all