From e67cecdf6e312d19d146a33c606d20f1f52bf8ec Mon Sep 17 00:00:00 2001 From: DragonSlayer_14 Date: Sun, 20 Sep 2026 23:17:51 +0200 Subject: [PATCH] =?UTF-8?q?CI:=20Ersetzt=20rohes=20actions/cache=20f=C3=BC?= =?UTF-8?q?r=20Cargo-Build-Artefakte=20durch=20Swatinem/rust-cache?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ein rohes 'actions/cache' auf target/ lieferte zwar einen technischen Cache-Hit, Cargo kompilierte die Abhängigkeiten aber trotzdem neu: der tar-basierte Restore-Vorgang setzt bei allen wiederhergestellten Dateien dieselbe Mtime, wodurch Cargos Fingerprinting nicht mehr zuverlässig erkennen kann, was älter/neuer als was ist. Swatinem/rust-cache behebt das gezielt (u. a. gezielte Mtime-Korrektur nach dem Restore). Co-Authored-By: Claude Sonnet 5 --- .gitea/workflows/code-quality.yaml | 16 +++++++--------- .gitea/workflows/main.yaml | 16 +++++++--------- .gitea/workflows/testing.yaml | 16 +++++++--------- .gitea/workflows/unit-tests.yaml | 16 +++++++--------- 4 files changed, 28 insertions(+), 36 deletions(-) diff --git a/.gitea/workflows/code-quality.yaml b/.gitea/workflows/code-quality.yaml index 8c35d11..dc69eb5 100644 --- a/.gitea/workflows/code-quality.yaml +++ b/.gitea/workflows/code-quality.yaml @@ -24,16 +24,14 @@ jobs: components: clippy, rustfmt cache: false + # Ein rohes 'actions/cache' auf target/ liefert zwar einen technischen Cache-Hit (Dateien + # werden wiederhergestellt), Cargo kompiliert die Abhängigkeiten aber oft trotzdem neu: + # Der tar-basierte Restore-Vorgang setzt bei allen wiederhergestellten Dateien dieselbe + # Mtime, wodurch Cargos Fingerprinting nicht mehr zuverlässig erkennen kann, was + # älter/neuer als was ist, und sicherheitshalber alles neu baut. Swatinem/rust-cache ist + # genau dafür gebaut (u. a. gezielte Mtime-Korrektur nach dem Restore). - name: Cache Cargo-Abhängigkeiten & Build-Artefakte - uses: actions/cache@v6 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: cargo-${{ runner.os }}-${{ hashFiles('Cargo.lock') }} - restore-keys: | - cargo-${{ runner.os }}- + uses: Swatinem/rust-cache@v2 - name: Formatierung automatisch beheben run: cargo fmt diff --git a/.gitea/workflows/main.yaml b/.gitea/workflows/main.yaml index f201502..2ec0c6c 100644 --- a/.gitea/workflows/main.yaml +++ b/.gitea/workflows/main.yaml @@ -47,16 +47,14 @@ jobs: toolchain: stable cache: false + # Ein rohes 'actions/cache' auf target/ liefert zwar einen technischen Cache-Hit (Dateien + # werden wiederhergestellt), Cargo kompiliert die Abhängigkeiten aber oft trotzdem neu: + # Der tar-basierte Restore-Vorgang setzt bei allen wiederhergestellten Dateien dieselbe + # Mtime, wodurch Cargos Fingerprinting nicht mehr zuverlässig erkennen kann, was + # älter/neuer als was ist, und sicherheitshalber alles neu baut. Swatinem/rust-cache ist + # genau dafür gebaut (u. a. gezielte Mtime-Korrektur nach dem Restore). - name: Cache Cargo-Abhängigkeiten & Build-Artefakte - uses: actions/cache@v6 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: cargo-${{ runner.os }}-${{ hashFiles('Cargo.lock') }} - restore-keys: | - cargo-${{ runner.os }}- + uses: Swatinem/rust-cache@v2 - name: Alte Paketierungs-Ausgaben aus dem Cache entfernen run: rm -rf target/debian target/generate-rpm target/arch diff --git a/.gitea/workflows/testing.yaml b/.gitea/workflows/testing.yaml index 6bf6d29..f904def 100644 --- a/.gitea/workflows/testing.yaml +++ b/.gitea/workflows/testing.yaml @@ -47,16 +47,14 @@ jobs: toolchain: stable cache: false + # Ein rohes 'actions/cache' auf target/ liefert zwar einen technischen Cache-Hit (Dateien + # werden wiederhergestellt), Cargo kompiliert die Abhängigkeiten aber oft trotzdem neu: + # Der tar-basierte Restore-Vorgang setzt bei allen wiederhergestellten Dateien dieselbe + # Mtime, wodurch Cargos Fingerprinting nicht mehr zuverlässig erkennen kann, was + # älter/neuer als was ist, und sicherheitshalber alles neu baut. Swatinem/rust-cache ist + # genau dafür gebaut (u. a. gezielte Mtime-Korrektur nach dem Restore). - name: Cache Cargo-Abhängigkeiten & Build-Artefakte - uses: actions/cache@v6 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: cargo-${{ runner.os }}-${{ hashFiles('Cargo.lock') }} - restore-keys: | - cargo-${{ runner.os }}- + uses: Swatinem/rust-cache@v2 - name: Alte Paketierungs-Ausgaben aus dem Cache entfernen run: rm -rf target/debian target/generate-rpm target/arch diff --git a/.gitea/workflows/unit-tests.yaml b/.gitea/workflows/unit-tests.yaml index 7703f7f..56c4735 100644 --- a/.gitea/workflows/unit-tests.yaml +++ b/.gitea/workflows/unit-tests.yaml @@ -23,16 +23,14 @@ jobs: toolchain: stable cache: false + # Ein rohes 'actions/cache' auf target/ liefert zwar einen technischen Cache-Hit (Dateien + # werden wiederhergestellt), Cargo kompiliert die Abhängigkeiten aber oft trotzdem neu: + # Der tar-basierte Restore-Vorgang setzt bei allen wiederhergestellten Dateien dieselbe + # Mtime, wodurch Cargos Fingerprinting nicht mehr zuverlässig erkennen kann, was + # älter/neuer als was ist, und sicherheitshalber alles neu baut. Swatinem/rust-cache ist + # genau dafür gebaut (u. a. gezielte Mtime-Korrektur nach dem Restore). - name: Cache Cargo-Abhängigkeiten & Build-Artefakte - uses: actions/cache@v6 - with: - path: | - ~/.cargo/registry - ~/.cargo/git - target - key: cargo-${{ runner.os }}-${{ hashFiles('Cargo.lock') }} - restore-keys: | - cargo-${{ runner.os }}- + uses: Swatinem/rust-cache@v2 - name: Run Tests run: cargo test