Skip to content

Commit 16d4afc

Browse files
committed
tests: prewarm ci cache and mirror images via local registry
1 parent bd11c5c commit 16d4afc

14 files changed

Lines changed: 569 additions & 63 deletions

.github/workflows/test.yml

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,13 @@ jobs:
6565
- name: Build
6666
run: make build
6767

68+
- name: Prewarm test cache
69+
env:
70+
HYPEMAN_TEST_REGISTRY: 127.0.0.1:5001
71+
run: |
72+
export HYPEMAN_TEST_PREWARM_DIR="$HOME/.cache/hypeman-ci/linux-amd64"
73+
go run ./cmd/test-prewarm
74+
6875
- name: Check gofmt
6976
run: |
7077
set -euo pipefail
@@ -91,7 +98,11 @@ jobs:
9198
CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
9299
TLS_TEST_DOMAIN: "test.hypeman-development.com"
93100
TLS_ALLOWED_DOMAINS: '*.hypeman-development.com'
94-
run: make test TEST_TIMEOUT=20m
101+
HYPEMAN_TEST_PREWARM_STRICT: "1"
102+
HYPEMAN_TEST_REGISTRY: 127.0.0.1:5001
103+
run: |
104+
export HYPEMAN_TEST_PREWARM_DIR="$HOME/.cache/hypeman-ci/linux-amd64"
105+
make test TEST_TIMEOUT=20m
95106
96107
test-darwin:
97108
runs-on: [self-hosted, macos, arm64]
@@ -123,6 +134,13 @@ jobs:
123134
- name: Build
124135
run: make build
125136

137+
- name: Prewarm test cache
138+
env:
139+
HYPEMAN_TEST_REGISTRY: 127.0.0.1:5001
140+
run: |
141+
export HYPEMAN_TEST_PREWARM_DIR="$HOME/.cache/hypeman-ci/darwin-arm64"
142+
go run ./cmd/test-prewarm
143+
126144
- name: Check gofmt
127145
run: |
128146
set -euo pipefail
@@ -142,7 +160,11 @@ jobs:
142160
GO_TEST_TIMEOUT: 600s
143161
DEFAULT_HYPERVISOR: vz
144162
JWT_SECRET: ci-test-secret
145-
run: make test
163+
HYPEMAN_TEST_PREWARM_STRICT: "1"
164+
HYPEMAN_TEST_REGISTRY: 127.0.0.1:5001
165+
run: |
166+
export HYPEMAN_TEST_PREWARM_DIR="$HOME/.cache/hypeman-ci/darwin-arm64"
167+
make test
146168
- name: Cleanup
147169
if: always()
148170
run: |

Makefile

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -269,9 +269,17 @@ test-linux: ensure-ch-binaries ensure-firecracker-binaries ensure-caddy-binaries
269269
if [ -n "$(VERBOSE)" ]; then VERBOSE_FLAG="-v"; fi; \
270270
if [ -n "$(TEST)" ]; then \
271271
echo "Running specific test: $(TEST)"; \
272-
sudo env "PATH=$$TEST_PATH" "DOCKER_CONFIG=$${DOCKER_CONFIG:-$$HOME/.docker}" go test -tags containers_image_openpgp -run=$(TEST) $$VERBOSE_FLAG -timeout=$(TEST_TIMEOUT) ./...; \
272+
sudo env "PATH=$$TEST_PATH" "DOCKER_CONFIG=$${DOCKER_CONFIG:-$$HOME/.docker}" \
273+
"HYPEMAN_TEST_PREWARM_DIR=$${HYPEMAN_TEST_PREWARM_DIR:-}" \
274+
"HYPEMAN_TEST_PREWARM_STRICT=$${HYPEMAN_TEST_PREWARM_STRICT:-}" \
275+
"HYPEMAN_TEST_REGISTRY=$${HYPEMAN_TEST_REGISTRY:-}" \
276+
go test -tags containers_image_openpgp -run=$(TEST) $$VERBOSE_FLAG -timeout=$(TEST_TIMEOUT) ./...; \
273277
else \
274-
sudo env "PATH=$$TEST_PATH" "DOCKER_CONFIG=$${DOCKER_CONFIG:-$$HOME/.docker}" go test -tags containers_image_openpgp $$VERBOSE_FLAG -timeout=$(TEST_TIMEOUT) ./...; \
278+
sudo env "PATH=$$TEST_PATH" "DOCKER_CONFIG=$${DOCKER_CONFIG:-$$HOME/.docker}" \
279+
"HYPEMAN_TEST_PREWARM_DIR=$${HYPEMAN_TEST_PREWARM_DIR:-}" \
280+
"HYPEMAN_TEST_PREWARM_STRICT=$${HYPEMAN_TEST_PREWARM_STRICT:-}" \
281+
"HYPEMAN_TEST_REGISTRY=$${HYPEMAN_TEST_REGISTRY:-}" \
282+
go test -tags containers_image_openpgp $$VERBOSE_FLAG -timeout=$(TEST_TIMEOUT) ./...; \
275283
fi
276284

277285
# macOS tests (no sudo needed, adds e2fsprogs to PATH)

0 commit comments

Comments
 (0)