Skip to content

Commit 35b564d

Browse files
authored
refactor: use docker cache (#110)
* refactor: use docker cache
1 parent 4051afc commit 35b564d

File tree

2 files changed

+24
-71
lines changed

2 files changed

+24
-71
lines changed

.github/workflows/ci.yml

Lines changed: 14 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -2,63 +2,16 @@ name: ci
22

33
on:
44
push:
5-
branches:
6-
- main
7-
tags:
8-
- "**"
5+
branches: [main]
6+
tags: ["**"]
97
pull_request:
10-
branches:
11-
- main
8+
branches: [main]
129
merge_group:
13-
branches:
14-
- main
10+
branches: [main]
11+
workflow_call:
12+
workflow_dispatch:
1513

1614
jobs:
17-
context:
18-
strategy:
19-
matrix:
20-
os: [ubuntu-latest]
21-
22-
runs-on: ${{ matrix.os }}
23-
steps:
24-
- name: Dump GitHub script context
25-
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
26-
with:
27-
script: console.log(context)
28-
29-
- name: Dump GitHub context
30-
env:
31-
GITHUB_CONTEXT: ${{ toJson(github) }}
32-
run: echo ${GITHUB_CONTEXT}
33-
34-
- name: Dump job context
35-
env:
36-
JOB_CONTEXT: ${{ toJson(job) }}
37-
run: echo ${JOB_CONTEXT}
38-
39-
- name: Dump steps context
40-
env:
41-
STEPS_CONTEXT: ${{ toJson(steps) }}
42-
run: echo ${STEPS_CONTEXT}
43-
44-
- name: Dump runner context
45-
env:
46-
RUNNER_CONTEXT: ${{ toJson(runner) }}
47-
run: echo ${RUNNER_CONTEXT}
48-
49-
- name: Dump strategy context
50-
env:
51-
STRATEGY_CONTEXT: ${{ toJson(strategy) }}
52-
run: echo ${STRATEGY_CONTEXT}
53-
54-
- name: Dump matrix context
55-
env:
56-
MATRIX_CONTEXT: ${{ toJson(matrix) }}
57-
run: echo ${MATRIX_CONTEXT}
58-
59-
- name: Dump environment variables
60-
run: ${{ (runner.os == 'Windows') && 'gci env:' || 'env | sort' }}
61-
6215
python:
6316
strategy:
6417
matrix:
@@ -129,23 +82,16 @@ jobs:
12982
buildkit-mounts-${{ runner.os }}
13083
buildkit-mounts-${{ runner.os }}
13184
132-
- name: Inject var-cache-apt into docker
133-
uses: reproducible-containers/buildkit-cache-dance@5b6db76d1da5c8b307d5d2e0706d266521b710de # v3
134-
with:
135-
cache-source: var-cache-apt
136-
cache-target: /var/cache/apt
137-
138-
- name: Inject root-cache-pip into docker
139-
uses: reproducible-containers/buildkit-cache-dance@5b6db76d1da5c8b307d5d2e0706d266521b710de # v3
140-
with:
141-
cache-source: root-cache-pip
142-
cache-target: /root/.cache/pip
143-
144-
- name: Inject root-cache-uv into docker
85+
- name: Inject cache into docker
14586
uses: reproducible-containers/buildkit-cache-dance@5b6db76d1da5c8b307d5d2e0706d266521b710de # v3
14687
with:
147-
cache-source: root-cache-uv
148-
cache-target: /root/.cache/uv
88+
cache-map: |
89+
{
90+
"var-cache-apt": "/var/cache/apt",
91+
"var-lib-apt": "/var/lib/apt",
92+
"root-cache-pip": "/root/.cache/pip",
93+
"root-cache-uv": "/root/.cache/uv"
94+
}
14995
15096
- name: Set up Docker Buildx
15197
uses: docker/setup-buildx-action@f7ce87c1d6bead3e36075b2ce75da1f6cc28aaca # v3

Dockerfile

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,20 @@ WORKDIR ${APP_HOME}
2525
FROM base AS dev
2626

2727
ARG DEBIAN_FRONTEND=noninteractive
28+
COPY <<-EOF /etc/apt/apt.conf.d/99-disable-recommends
29+
APT::Install-Recommends "false";
30+
APT::Install-Suggests "false";
31+
APT::AutoRemove::RecommendsImportant "false";
32+
APT::AutoRemove::SuggestsImportant "false";
33+
EOF
2834
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
35+
--mount=type=cache,target=/var/lib/apt,sharing=locked \
2936
rm -f /etc/apt/apt.conf.d/docker-clean && \
37+
echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache && \
3038
apt-get update && \
31-
apt-get install --no-install-recommends -y \
39+
apt-get install --yes \
3240
build-essential \
33-
curl \
34-
&& rm -rf /var/lib/apt/lists/*
41+
curl
3542

3643
ARG PIP_DISABLE_PIP_VERSION_CHECK=1 \
3744
PIP_NO_CACHE_DIR=0 \

0 commit comments

Comments
 (0)