Skip to content

Commit 2e764cb

Browse files
committed
circleci: preserve cached build artifacts, only remove logs
Signed-off-by: Thierry Laurion <insurgo@riseup.net>
1 parent 907bb5e commit 2e764cb

File tree

1 file changed

+17
-78
lines changed

1 file changed

+17
-78
lines changed

.circleci/config.yml

Lines changed: 17 additions & 78 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,21 @@ jobs:
7474
name: Creating musl-cross-make and musl-cross-make patches digest (musl-cross-make cache digest)
7575
command: |
7676
find ./flake.lock modules/musl-cross-make* -type f | sort -h | xargs sha256sum > ./tmpDir/musl-cross-make.sha256sums
77+
- restore_cache:
78+
# First matched/found key wins and following keys are not tried
79+
keys:
80+
# Cache for matching modules digest, validated to be exactly the same as in GitHub current commit.
81+
# This cache was made on top of below caches, if previously existing.
82+
# If no module definition changed, we reuse this one
83+
# x86 caches
84+
- nix-docker-heads-modules-x86-{{ checksum "./tmpDir/all_modules_and_patches.sha256sums" }}{{ .Environment.CACHE_VERSION }}
85+
- nix-docker-heads-coreboot-musl-cross-make-x86-{{ checksum "./tmpDir/coreboot_musl-cross-make.sha256sums" }}{{ .Environment.CACHE_VERSION }}
86+
- nix-docker-heads-musl-cross-make-x86-{{ checksum "./tmpDir/musl-cross-make.sha256sums" }}{{ .Environment.CACHE_VERSION }}
87+
# Cache for coreboot module (and patches) and musl-cross-make digests (coreboot: triannual release)
88+
# ppc64 caches
89+
- nix-docker-heads-modules-ppc64-{{ checksum "./tmpDir/all_modules_and_patches.sha256sums" }}{{ .Environment.CACHE_VERSION }}
90+
- nix-docker-heads-coreboot-musl-cross-make-ppc64-{{ checksum "./tmpDir/coreboot_musl-cross-make.sha256sums" }}{{ .Environment.CACHE_VERSION }}
91+
- nix-docker-heads-musl-cross-make-ppc64-{{ checksum "./tmpDir/musl-cross-make.sha256sums" }}{{ .Environment.CACHE_VERSION }}
7792
- run:
7893
name: Download and neuter xx20 ME (keep generated GBE and extracted IFD in tree)
7994
command: |
@@ -109,63 +124,6 @@ jobs:
109124
paths:
110125
- .
111126

112-
x86-prep:
113-
docker:
114-
# Docker image: tlaurion/heads-dev-env:v0.2.9
115-
- image: tlaurion/heads-dev-env@sha256:96f8f91c6464305c4a990d59f9ef93910c16c7fd0501a46b43b34a4600a368de
116-
resource_class: large
117-
working_directory: ~/heads
118-
steps:
119-
- attach_workspace:
120-
at: ~/heads
121-
- restore_cache:
122-
# First matched/found key wins and following keys are not tried
123-
# Cache for matching modules digest, validated to be exactly the same as in GitHub current commit.
124-
# This cache was made on top of below caches, if previously existing.
125-
keys:
126-
- nix-docker-heads-modules-x86-{{ checksum "./tmpDir/all_modules_and_patches.sha256sums" }}{{ .Environment.CACHE_VERSION }}
127-
- nix-docker-heads-coreboot-musl-cross-make-x86-{{ checksum "./tmpDir/coreboot_musl-cross-make.sha256sums" }}{{ .Environment.CACHE_VERSION }}
128-
- nix-docker-heads-musl-cross-make-x86-{{ checksum "./tmpDir/musl-cross-make.sha256sums" }}{{ .Environment.CACHE_VERSION }}
129-
# persist_to_workspace only runs on cache hit (when: on_success)
130-
# because if cache misses, directories don't exist yet
131-
- persist_to_workspace:
132-
when: on_success
133-
workspace: x86
134-
root: ~/heads
135-
paths:
136-
- packages/x86
137-
- build/x86
138-
- crossgcc/x86
139-
- install/x86
140-
141-
ppc64-prep:
142-
docker:
143-
# Docker image: tlaurion/heads-dev-env:v0.2.9
144-
- image: tlaurion/heads-dev-env@sha256:96f8f91c6464305c4a990d59f9ef93910c16c7fd0501a46b43b34a4600a368de
145-
resource_class: large
146-
working_directory: ~/heads
147-
steps:
148-
- attach_workspace:
149-
at: ~/heads
150-
- restore_cache:
151-
# First matched/found key wins and following keys are not tried
152-
# Cache for coreboot module (and patches) and musl-cross-make digests (coreboot: triannual release)
153-
keys:
154-
- nix-docker-heads-modules-ppc64-{{ checksum "./tmpDir/all_modules_and_patches.sha256sums" }}{{ .Environment.CACHE_VERSION }}
155-
- nix-docker-heads-coreboot-musl-cross-make-ppc64-{{ checksum "./tmpDir/coreboot_musl-cross-make.sha256sums" }}{{ .Environment.CACHE_VERSION }}
156-
- nix-docker-heads-musl-cross-make-ppc64-{{ checksum "./tmpDir/musl-cross-make.sha256sums" }}{{ .Environment.CACHE_VERSION }}
157-
# persist_to_workspace only runs on cache hit (when: on_success)
158-
# because if cache misses, directories don't exist yet
159-
- persist_to_workspace:
160-
when: on_success
161-
workspace: ppc64
162-
root: ~/heads
163-
paths:
164-
- packages/ppc64
165-
- build/ppc64
166-
- crossgcc/ppc64
167-
- install/ppc64
168-
169127
build_and_persist:
170128
docker:
171129
# Docker image: tlaurion/heads-dev-env:v0.2.9
@@ -176,23 +134,18 @@ jobs:
176134
arch:
177135
type: string
178136
default: x86
179-
workspace:
180-
type: string
181-
default: x86
182137
target:
183138
type: string
184139
subcommand:
185140
type: string
186141
steps:
187142
- attach_workspace:
188143
at: ~/heads
189-
workspace: << parameters.workspace >>
190144
- build_board:
191145
arch: << parameters.arch >>
192146
target: << parameters.target >>
193147
subcommand: << parameters.subcommand >>
194148
- persist_to_workspace:
195-
workspace: << parameters.workspace >>
196149
root: ~/heads
197150
paths:
198151
- packages/<< parameters.arch >>
@@ -210,17 +163,13 @@ jobs:
210163
arch:
211164
type: string
212165
default: x86
213-
workspace:
214-
type: string
215-
default: x86
216166
target:
217167
type: string
218168
subcommand:
219169
type: string
220170
steps:
221171
- attach_workspace:
222172
at: ~/heads
223-
workspace: << parameters.workspace >>
224173
- build_board:
225174
arch: <<parameters.arch>>
226175
target: <<parameters.target>>
@@ -235,7 +184,6 @@ jobs:
235184
steps:
236185
- attach_workspace:
237186
at: ~/heads
238-
workspace: x86
239187
- save_cache:
240188
# Generate cache for the same musl-cross-make module definition if hash is not previously existing
241189
# CircleCI removed their wildcard support, so we have to list precise versions to cache in directory names
@@ -280,7 +228,6 @@ jobs:
280228
steps:
281229
- attach_workspace:
282230
at: ~/heads
283-
workspace: ppc64
284231
- save_cache:
285232
# Generate cache for the same musl-cross-make module definition if hash is not previously existing
286233
# CircleCI removed their wildcard support, so we have to list precise versions to cache in directory names
@@ -313,30 +260,23 @@ workflows:
313260
max_auto_reruns: 3
314261
jobs:
315262
- prep_env
316-
- x86-prep:
317-
requires:
318-
- prep_env
319-
- ppc64-prep:
320-
requires:
321-
- prep_env
322263

323264
# This step builds musl-cross-make for x86 architecture, which will be used by subsequent x86 board builds
324265
- build_and_persist:
325266
name: x86-musl-cross-make
326267
target: EOL_t480-hotp-maximized
327268
subcommand: "musl-cross-make"
328269
requires:
329-
- x86-prep
270+
- prep_env
330271

331272
# This step builds musl-cross-make for ppc64 architecture, which will be used by subsequent ppc64 board builds
332273
- build_and_persist:
333274
name: ppc64-musl-cross-make
334275
arch: ppc64
335-
workspace: ppc64
336276
target: UNTESTED_talos-2
337277
subcommand: "musl-cross-make"
338278
requires:
339-
- ppc64-prep
279+
- prep_env
340280

341281
# Below, sequentially build one board for each coreboot version.
342282
# The last board in the sequence is the dependency for the parallel boards built at the end, and also save_cache.
@@ -369,7 +309,6 @@ workflows:
369309
- build_and_persist:
370310
name: UNTESTED_talos-2
371311
arch: ppc64
372-
workspace: ppc64
373312
target: UNTESTED_talos-2
374313
subcommand: ""
375314
requires:

0 commit comments

Comments
 (0)