diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 47b26c5f..25cf087f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -66,8 +66,16 @@ jobs: - uses: dtolnay/rust-toolchain@stable + - name: Cache Rust dependencies + uses: Swatinem/rust-cache@v2 + with: + # The Docker workflow builds the same targets with the same Cross images. + shared-key: linux-cross-release + key: ${{ hashFiles('Cross.toml', 'build/cross/Dockerfile.*') }} + cache-all-crates: true + - name: Install cross - run: cargo install cross --locked + run: cargo install cross --version 0.2.5 --locked - name: Build linux binary run: bash build/build-images.sh @@ -127,6 +135,12 @@ jobs: "TURBOJPEG_LIB_DIR=$env:TURBOJPEG_LIB_DIR" | Out-File -FilePath $env:GITHUB_ENV -Append "TURBOJPEG_INCLUDE_DIR=$env:TURBOJPEG_INCLUDE_DIR" | Out-File -FilePath $env:GITHUB_ENV -Append + - name: Cache Rust dependencies + uses: Swatinem/rust-cache@v2 + with: + shared-key: windows-msvc-release + key: ${{ hashFiles('vcpkg.json', 'vcpkg-configuration.json') }} + - name: Build Windows exe shell: pwsh run: .\build\windows\build.ps1 -Configuration release -Package diff --git a/.github/workflows/docker.yml b/.github/workflows/docker.yml index f71ab055..dd411487 100644 --- a/.github/workflows/docker.yml +++ b/.github/workflows/docker.yml @@ -42,11 +42,19 @@ jobs: - uses: dtolnay/rust-toolchain@stable + - name: Cache Rust dependencies + uses: Swatinem/rust-cache@v2 + with: + # Reuse dependency artifacts produced by the deb job and vice versa. + shared-key: linux-cross-release + key: ${{ hashFiles('Cross.toml', 'build/cross/Dockerfile.*') }} + cache-all-crates: true + - name: Install build dependencies run: | sudo apt-get update sudo apt-get install -y unzip xz-utils - cargo install cross --locked + cargo install cross --version 0.2.5 --locked - name: Build frontend working-directory: web