diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 90de9898..126ca989 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -42,11 +42,11 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: submodules: recursive - - uses: gradle/actions/wrapper-validation@48b5f213c81028ace310571dc5ec0fbbca0b2947 # v4 + - uses: gradle/actions/wrapper-validation@ed408507eac070d1f99cc633dbcf757c94c7933a # v4 - name: Check root crash/replay logs run: bash scripts/check-no-root-crash-logs.sh @@ -73,16 +73,16 @@ jobs: run: bash scripts/check-fork-identity.sh - name: Set up JDK 17 - uses: actions/setup-java@c1e323688fd81a25caa38c78aa6df2d33d3e20d9 # v4 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: java-version: 17 distribution: temurin - name: Set up CMake and Ninja - uses: lukka/get-cmake@ea004816823209b8d1211e47b216185caee12cc5 # v4.0.2 + uses: lukka/get-cmake@591817e96fcad43505fb4eae36172462abb3a42e # v4.3.3 - name: Cache Gradle - uses: gradle/actions/setup-gradle@48b5f213c81028ace310571dc5ec0fbbca0b2947 # v4 + uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4 - name: Verify no-network contract (N7.1) run: ./gradlew :app:verifyNoInternetPermission @@ -150,14 +150,14 @@ jobs: echo "All shipped native libraries (if any) are 16 KB aligned." - name: Upload debug APK - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: app-debug.apk path: app/build/outputs/apk/debug/app-debug.apk - name: Upload lint report if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: lint-debug-report path: | @@ -167,14 +167,14 @@ jobs: - name: Upload unit-test report if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: unit-test-report path: app/build/reports/tests/testDebugUnitTest/ - name: Upload typing quality scorecard if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: typing-quality-scorecard path: build/typing-quality-scorecard/ diff --git a/.github/workflows/benchmark-regression.yml b/.github/workflows/benchmark-regression.yml index 0934b701..c195a88b 100644 --- a/.github/workflows/benchmark-regression.yml +++ b/.github/workflows/benchmark-regression.yml @@ -42,23 +42,23 @@ jobs: timeout-minutes: 90 steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: submodules: recursive - - uses: gradle/actions/wrapper-validation@48b5f213c81028ace310571dc5ec0fbbca0b2947 # v4 + - uses: gradle/actions/wrapper-validation@ed408507eac070d1f99cc633dbcf757c94c7933a # v4 - name: Set up JDK 17 - uses: actions/setup-java@c1e323688fd81a25caa38c78aa6df2d33d3e20d9 # v4 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: java-version: 17 distribution: temurin - name: Set up CMake and Ninja - uses: lukka/get-cmake@ea004816823209b8d1211e47b216185caee12cc5 # v4.0.2 + uses: lukka/get-cmake@591817e96fcad43505fb4eae36172462abb3a42e # v4.3.3 - name: Cache Gradle - uses: gradle/actions/setup-gradle@48b5f213c81028ace310571dc5ec0fbbca0b2947 # v4 + uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4 - name: Build benchmark APKs run: ./gradlew :app:assembleBenchmark :benchmark:assembleBenchmark @@ -168,7 +168,7 @@ jobs: - name: Upload benchmark trend report if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: benchmark-trend-report path: | diff --git a/.github/workflows/crowdin-upload.yml b/.github/workflows/crowdin-upload.yml index 14ea8d71..b5dd48b9 100644 --- a/.github/workflows/crowdin-upload.yml +++ b/.github/workflows/crowdin-upload.yml @@ -21,14 +21,14 @@ jobs: steps: - name: Checkout - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 - name: Upload # SHA pin: crowdin/github-action@v2 = 8868a33591d21088edfc398968173a3b98d51706 # Verified 2026-05-17 via `GET /repos/crowdin/github-action/git/refs/tags/v2`. # When the maintainer wants to ride a newer v2 patch, look up the tag's # SHA again and substitute. Never re-introduce the floating `@v2` tag — # this action receives the Crowdin personal token + GITHUB_TOKEN. - uses: crowdin/github-action@8868a33591d21088edfc398968173a3b98d51706 # v2 + uses: crowdin/github-action@52aa776766211d83d975df51f3b9c53c2f8ba35f # v2 with: config: "crowdin.yml" upload_sources: true diff --git a/.github/workflows/dependency-scan.yml b/.github/workflows/dependency-scan.yml index e0e618a9..ef488054 100644 --- a/.github/workflows/dependency-scan.yml +++ b/.github/workflows/dependency-scan.yml @@ -40,11 +40,11 @@ jobs: if: github.event_name == 'pull_request' runs-on: ubuntu-latest steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: submodules: recursive - name: Run dependency-review - uses: actions/dependency-review-action@4901385134134e04cec5fbe5ddfe3b2c5bd5d976 # v4 + uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v4 with: fail-on-severity: high comment-summary-in-pr: on-failure @@ -52,24 +52,24 @@ jobs: osv-scanner: runs-on: ubuntu-latest steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: submodules: recursive - name: Set up JDK 17 - uses: actions/setup-java@c1e323688fd81a25caa38c78aa6df2d33d3e20d9 # v4 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: java-version: 17 distribution: temurin - name: Cache Gradle - uses: gradle/actions/setup-gradle@48b5f213c81028ace310571dc5ec0fbbca0b2947 # v4 + uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4 - name: Generate Gradle dependency tree run: ./gradlew :app:dependencies --configuration releaseRuntimeClasspath > gradle-deps.txt - name: Run OSV-Scanner against the lockfiles + dep tree - uses: google/osv-scanner-action/osv-scanner-action@e69cc6c86b31f1e7e23935bbe7031b50e51082de # v2.0.2 + uses: google/osv-scanner-action/osv-scanner-action@9a498708959aeaef5ef730655706c5a1df1edbc2 # v2.3.8 with: scan-args: |- --recursive @@ -79,7 +79,7 @@ jobs: - name: Upload dep tree artifact if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: gradle-dep-tree path: gradle-deps.txt diff --git a/.github/workflows/emulator-smoke.yml b/.github/workflows/emulator-smoke.yml index 0bed4e33..5f06c0c4 100644 --- a/.github/workflows/emulator-smoke.yml +++ b/.github/workflows/emulator-smoke.yml @@ -50,23 +50,23 @@ jobs: universal-resizable: true steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: submodules: recursive - - uses: gradle/actions/wrapper-validation@48b5f213c81028ace310571dc5ec0fbbca0b2947 # v4 + - uses: gradle/actions/wrapper-validation@ed408507eac070d1f99cc633dbcf757c94c7933a # v4 - name: Set up JDK 17 - uses: actions/setup-java@c1e323688fd81a25caa38c78aa6df2d33d3e20d9 # v4 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: java-version: 17 distribution: temurin - name: Set up CMake and Ninja - uses: lukka/get-cmake@ea004816823209b8d1211e47b216185caee12cc5 # v4.0.2 + uses: lukka/get-cmake@591817e96fcad43505fb4eae36172462abb3a42e # v4.3.3 - name: Cache Gradle - uses: gradle/actions/setup-gradle@48b5f213c81028ace310571dc5ec0fbbca0b2947 # v4 + uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4 - name: Build debug APK run: ./gradlew :app:assembleDebug @@ -112,7 +112,7 @@ jobs: - name: Upload emulator smoke logcat if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: emulator-smoke-logcat path: emulator-smoke-logcat.txt diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 0b6fc98d..ca0b9be0 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -53,21 +53,21 @@ jobs: env: SIGNING_KEYSTORE_BASE64: ${{ secrets.SIGNING_KEYSTORE_BASE64 }} steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: submodules: recursive fetch-depth: 0 - - uses: gradle/actions/wrapper-validation@48b5f213c81028ace310571dc5ec0fbbca0b2947 # v4 + - uses: gradle/actions/wrapper-validation@ed408507eac070d1f99cc633dbcf757c94c7933a # v4 - name: Set up JDK 17 - uses: actions/setup-java@c1e323688fd81a25caa38c78aa6df2d33d3e20d9 # v4 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: java-version: 17 distribution: temurin - name: Cache Gradle - uses: gradle/actions/setup-gradle@48b5f213c81028ace310571dc5ec0fbbca0b2947 # v4 + uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4 - name: Make gradlew executable run: chmod +x ./gradlew @@ -184,7 +184,7 @@ jobs: - name: Upload OSV scan artifacts if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: swiftfloris-v${{ inputs.version }}-osv path: | @@ -306,7 +306,7 @@ jobs: echo '```' >> "$GITHUB_STEP_SUMMARY" - name: Upload artifacts - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: swiftfloris-v${{ inputs.version }} path: | diff --git a/.github/workflows/reproducible-build.yml b/.github/workflows/reproducible-build.yml index 68b4ab81..19618321 100644 --- a/.github/workflows/reproducible-build.yml +++ b/.github/workflows/reproducible-build.yml @@ -47,31 +47,31 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: submodules: recursive fetch-depth: 0 - - uses: gradle/actions/wrapper-validation@48b5f213c81028ace310571dc5ec0fbbca0b2947 # v4 + - uses: gradle/actions/wrapper-validation@ed408507eac070d1f99cc633dbcf757c94c7933a # v4 - name: Set up JDK 17 - uses: actions/setup-java@c1e323688fd81a25caa38c78aa6df2d33d3e20d9 # v4 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: java-version: 17 distribution: temurin - name: Set up CMake and Ninja - uses: lukka/get-cmake@ea004816823209b8d1211e47b216185caee12cc5 # v4.0.2 + uses: lukka/get-cmake@591817e96fcad43505fb4eae36172462abb3a42e # v4.3.3 - name: Cache Gradle - uses: gradle/actions/setup-gradle@48b5f213c81028ace310571dc5ec0fbbca0b2947 # v4 + uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4 - name: Verify release APK reproducibility run: bash scripts/verify-reproducible-apk.sh "$RUNNER_TEMP/reproducible-apk" - name: Upload reproducibility artifacts if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: reproducible-apk-${{ github.sha }} path: ${{ runner.temp }}/reproducible-apk/ diff --git a/.github/workflows/roborazzi-baseline.yml b/.github/workflows/roborazzi-baseline.yml index 376a1808..226e11ae 100644 --- a/.github/workflows/roborazzi-baseline.yml +++ b/.github/workflows/roborazzi-baseline.yml @@ -36,20 +36,20 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4 + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 with: submodules: recursive - - uses: gradle/actions/wrapper-validation@48b5f213c81028ace310571dc5ec0fbbca0b2947 # v4 + - uses: gradle/actions/wrapper-validation@ed408507eac070d1f99cc633dbcf757c94c7933a # v4 - name: Set up JDK 17 - uses: actions/setup-java@c1e323688fd81a25caa38c78aa6df2d33d3e20d9 # v4 + uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0 with: java-version: 17 distribution: temurin - name: Cache Gradle - uses: gradle/actions/setup-gradle@48b5f213c81028ace310571dc5ec0fbbca0b2947 # v4 + uses: gradle/actions/setup-gradle@ed408507eac070d1f99cc633dbcf757c94c7933a # v4 - name: Make gradlew executable run: chmod +x ./gradlew @@ -83,7 +83,7 @@ jobs: - name: Upload baseline artifact if: always() - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4 + uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 with: name: roborazzi-baselines-${{ github.run_id }}${{ inputs.message && format('-{0}', inputs.message) || '' }} path: app/src/test/snapshots/images/ diff --git a/.github/workflows/validate-strings-no-translations.yml b/.github/workflows/validate-strings-no-translations.yml index 0f219bd8..74cfe4b0 100644 --- a/.github/workflows/validate-strings-no-translations.yml +++ b/.github/workflows/validate-strings-no-translations.yml @@ -67,7 +67,7 @@ jobs: # while running on `pull_request_target` (base-repo context). A # floating tag would let an attacker who rotates the v4 ref exfiltrate # the token. Re-pin when bumping; never re-introduce `@v4`. - uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043 # v4 + uses: peter-evans/create-or-update-comment@e8674b075228eee787fea43ef493e45ece1004c9 # v5.0.0 if: steps.precheck.outputs.require_validation == 'true' && steps.fetch_changed_files.outputs.illegal_changes_list != '' with: issue-number: ${{ github.event.pull_request.number }}