Skip to content

Commit

Permalink
ci: cache docker layers and avoid re-downloading them for each job
Browse files Browse the repository at this point in the history
Sometimes the CI fails because Docker doesn't respond.
It could be because we download many docker images in every job
and we have 58 jobs now.
With this commit, the images layers, will be downloaded once at the beginning
and then re-used by all subsequent jobs.
This may even speedup the CI a bit or make it slower if the cache is not
very fast.
But hopefully we won't have spurious CI failures because of Docker anymore.

Signed-off-by: Salvatore Mesoraca <[email protected]>
  • Loading branch information
aiven-sal committed Sep 4, 2024
1 parent b424517 commit 1fecb73
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions .github/workflows/integration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,21 @@ jobs:
pip install -r dev_requirements.txt
invoke linters
populate-cache:
runs-on: ubuntu-latest
timeout-minutes: 60
name: Update docker cache
steps:
- name: Cache docker images
uses: actions/cache@v3
with:
path: ./custom-cache/
- name: Update Cache
run: docker compose --profile all build -d && docker save $(docker images -q) -o ./custom-cache/all.tar

run-tests:
runs-on: ubuntu-latest
needs: [populate-cache]
timeout-minutes: 60
strategy:
max-parallel: 15
Expand All @@ -70,6 +83,16 @@ jobs:
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'

- name: Cache docker images
id: custom-cache
uses: actions/cache@v3
with:
path: ./custom-cache/
fail-on-cache-miss: true
- name: Use Cache
run: docker image load -i ./custom-cache/all.tar

- name: run tests
run: |
pip install -U setuptools wheel
Expand Down Expand Up @@ -115,6 +138,16 @@ jobs:
- uses: actions/setup-python@v5
with:
python-version: 3.9

- name: Cache docker images
id: custom-cache
uses: actions/cache@v3
with:
path: ./custom-cache/
fail-on-cache-miss: true
- name: Use Cache
run: docker image load -i ./custom-cache/all.tar

- name: Run installed unit tests
run: |
bash .github/workflows/install_and_test.sh ${{ matrix.extension }}
Expand Down

0 comments on commit 1fecb73

Please sign in to comment.