ci: Cache docker image build mounts
This commit is contained in:
parent
1bf6537319
commit
7a46563f23
2 changed files with 56 additions and 1 deletions
|
@ -15,6 +15,10 @@ inputs:
|
||||||
components:
|
components:
|
||||||
description: Space-separated list of components to be additionally installed for a new toolchain
|
description: Space-separated list of components to be additionally installed for a new toolchain
|
||||||
required: false
|
required: false
|
||||||
|
outputs:
|
||||||
|
rustc_version:
|
||||||
|
description: The rustc version installed
|
||||||
|
value: ${{ steps.rustc-version.outputs.version }}
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: composite
|
using: composite
|
||||||
|
@ -43,3 +47,7 @@ runs:
|
||||||
${{ inputs.components && format('rustup component add {0}', inputs.components) }}
|
${{ inputs.components && format('rustup component add {0}', inputs.components) }}
|
||||||
cargo --version
|
cargo --version
|
||||||
rustc --version
|
rustc --version
|
||||||
|
- id: rustc-version
|
||||||
|
shell: bash
|
||||||
|
run: |
|
||||||
|
echo "version=$(rustc --version)" >> $GITHUB_OUTPUT
|
||||||
|
|
|
@ -85,6 +85,7 @@ jobs:
|
||||||
with:
|
with:
|
||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
- name: Install rust
|
- name: Install rust
|
||||||
|
id: rust-toolchain
|
||||||
uses: ./.forgejo/actions/rust-toolchain
|
uses: ./.forgejo/actions/rust-toolchain
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
- name: Set up Docker Buildx
|
||||||
|
@ -126,6 +127,52 @@ jobs:
|
||||||
key: timelord-v0
|
key: timelord-v0
|
||||||
path: .
|
path: .
|
||||||
|
|
||||||
|
- name: Cache Rust registry
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
.cargo/git
|
||||||
|
.cargo/git/checkouts
|
||||||
|
.cargo/registry
|
||||||
|
.cargo/registry/src
|
||||||
|
key: rust-registry-image-${{hashFiles('**/Cargo.lock') }}
|
||||||
|
- name: Cache cargo target
|
||||||
|
id: cache-cargo-target
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
cargo-target-${{ matrix.slug }}
|
||||||
|
key: cargo-target-${{ matrix.slug }}-${{hashFiles('**/Cargo.lock') }}-${{steps.rust-toolchain.outputs.rustc_version}}
|
||||||
|
- name: Cache apt cache
|
||||||
|
id: cache-apt
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
var-cache-apt-${{ matrix.slug }}
|
||||||
|
key: var-cache-apt-${{ matrix.slug }}
|
||||||
|
- name: Cache apt lib
|
||||||
|
id: cache-apt-lib
|
||||||
|
uses: actions/cache@v3
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
var-lib-apt-${{ matrix.slug }}
|
||||||
|
key: var-lib-apt-${{ matrix.slug }}
|
||||||
|
- name: inject cache into docker
|
||||||
|
uses: https://github.com/reproducible-containers/buildkit-cache-dance@v3.1.0
|
||||||
|
with:
|
||||||
|
cache-map: |
|
||||||
|
{
|
||||||
|
".cargo/registry": "/usr/local/cargo/registry",
|
||||||
|
".cargo/git/db": "/usr/local/cargo/git/db",
|
||||||
|
"cargo-target-${{ matrix.slug }}": {
|
||||||
|
"target": "/app/target",
|
||||||
|
"id": "cargo-target-${{ matrix.platform }}"
|
||||||
|
},
|
||||||
|
"var-cache-apt-${{ matrix.slug }}": "/var/cache/apt",
|
||||||
|
"var-lib-apt-${{ matrix.slug }}": "/var/lib/apt"
|
||||||
|
}
|
||||||
|
skip-extraction: ${{ steps.cache.outputs.cache-hit }}
|
||||||
|
|
||||||
- name: Build and push Docker image by digest
|
- name: Build and push Docker image by digest
|
||||||
id: build
|
id: build
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue