Skip to content

Commit 37e2229

Browse files
committed
Update cache strategy in Woodpecker CI script.
1. Skip to save cache if the workflow is triggered by PR. 2. Use docker buildx native cache function instead of download and use and upload cache to avoid out of disk quota. PR: https://git.kclab.cloud/hzhangxyz/qmb/pulls/1 Signed-off-by: Hao Zhang <[email protected]>
2 parents 5a1b5a9 + bbba628 commit 37e2229

File tree

3 files changed

+61
-36
lines changed

3 files changed

+61
-36
lines changed

.woodpecker/docker.yml

Lines changed: 49 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,6 @@ when:
22
- event: push
33
- event: pull_request
44

5-
variables:
6-
- &docker_config
7-
DOCKER_CACHE: /woodpecker/cache/docker
8-
- &minio_config
9-
MINIO_HOST: https://s3.kclab.cloud
10-
MINIO_ACCESS_KEY:
11-
from_secret: minio_access_key
12-
MINIO_SECRET_KEY:
13-
from_secret: minio_secret_key
14-
MINIO_BUCKET: cache-53030
15-
165
clone:
176
git:
187
image: woodpeckerci/plugin-git:2.6
@@ -21,22 +10,39 @@ clone:
2110
partial: false
2211

2312
steps:
24-
- name: open cache
25-
image: minio/mc:latest
26-
environment:
27-
<<: [*docker_config, *minio_config]
28-
commands:
29-
- mkdir --parents $${DOCKER_CACHE}
30-
- touch $${DOCKER_CACHE}/.keep
31-
- mc alias set minio $${MINIO_HOST} $${MINIO_ACCESS_KEY} $${MINIO_SECRET_KEY}
32-
- mc cp --recursive minio/$${MINIO_BUCKET}/${CI_REPO}/docker/ $${DOCKER_CACHE}/
33-
failure: ignore
34-
3513
- name: tagging
3614
image: mcp/git:latest
3715
commands:
3816
- git describe --tags | tee .tag
3917

18+
- name: credential
19+
image: python:3.12
20+
commands:
21+
- echo AWS_ACCESS_KEY_ID=$${AWS_ACCESS_KEY_ID} >> .env
22+
- echo AWS_SECRET_ACCESS_KEY=$${AWS_SECRET_ACCESS_KEY} >> .env
23+
- cat .env
24+
environment:
25+
AWS_ACCESS_KEY_ID:
26+
from_secret: minio_access_key
27+
AWS_SECRET_ACCESS_KEY:
28+
from_secret: minio_secret_key
29+
when:
30+
- event: push
31+
32+
- name: credential
33+
image: python:3.12
34+
commands:
35+
- echo AWS_ACCESS_KEY_ID=$${AWS_ACCESS_KEY_ID} >> .env
36+
- echo AWS_SECRET_ACCESS_KEY=$${AWS_SECRET_ACCESS_KEY} >> .env
37+
- cat .env
38+
environment:
39+
AWS_ACCESS_KEY_ID:
40+
from_secret: readonly_minio_access_key
41+
AWS_SECRET_ACCESS_KEY:
42+
from_secret: readonly_minio_secret_key
43+
when:
44+
- event: pull_request
45+
4046
- name: docker
4147
image: woodpeckerci/plugin-docker-buildx:6-insecure
4248
settings:
@@ -46,20 +52,31 @@ steps:
4652
from_secret: gitea_package
4753
registry: git.kclab.cloud
4854
tags_file: .tag
49-
cache-to: type=local,dest=/woodpecker/cache/docker
55+
cache-to: type=s3,bucket=cache-53030,region=local,endpoint_url=https://s3.kclab.cloud,prefix=${CI_REPO}/docker/,mode=max
5056
cache-from:
51-
- type=local\\,src=/woodpecker/cache/docker
57+
- type=s3\\,bucket=cache-53030\\,region=local\\,endpoint_url=https://s3.kclab.cloud\\,prefix=${CI_REPO}/docker/
58+
env_file: .env
5259
buildkit_config: |
5360
[registry."docker.io"]
5461
mirrors = ["https://docker.mirrors.kclab.cloud/"]
5562
build_args:
5663
PYPI_MIRROR: https://mirrors.ustc.edu.cn/pypi/simple
64+
when:
65+
- event: push
5766

58-
- name: save cache
59-
image: minio/mc:latest
60-
environment:
61-
<<: [*docker_config, *minio_config]
62-
commands:
63-
- mc alias set minio $${MINIO_HOST} $${MINIO_ACCESS_KEY} $${MINIO_SECRET_KEY}
64-
- mc cp --recursive $${DOCKER_CACHE}/ minio/$${MINIO_BUCKET}/${CI_REPO}/docker/
65-
failure: ignore
67+
- name: docker
68+
image: woodpeckerci/plugin-docker-buildx:6-insecure
69+
settings:
70+
repo: git.kclab.cloud/hzhangxyz/qmb
71+
dry_run: true
72+
tags_file: .tag
73+
cache-from:
74+
- type=s3\\,bucket=cache-53030\\,region=local\\,endpoint_url=https://s3.kclab.cloud\\,prefix=${CI_REPO}/docker/
75+
env_file: .env
76+
buildkit_config: |
77+
[registry."docker.io"]
78+
mirrors = ["https://docker.mirrors.kclab.cloud/"]
79+
build_args:
80+
PYPI_MIRROR: https://mirrors.ustc.edu.cn/pypi/simple
81+
when:
82+
- event: pull_request

.woodpecker/pre-commit.yml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,17 +9,17 @@ variables:
99
PRE_COMMIT_HOME: /woodpecker/cache/pre-commit
1010
- &minio_config
1111
MINIO_HOST: https://s3.kclab.cloud
12-
MINIO_ACCESS_KEY:
13-
from_secret: minio_access_key
14-
MINIO_SECRET_KEY:
15-
from_secret: minio_secret_key
1612
MINIO_BUCKET: cache-53030
1713

1814
steps:
1915
- name: open cache
2016
image: minio/mc:latest
2117
environment:
2218
<<: [*pre_commit_config, *minio_config]
19+
MINIO_ACCESS_KEY:
20+
from_secret: readonly_minio_access_key
21+
MINIO_SECRET_KEY:
22+
from_secret: readonly_minio_secret_key
2323
commands:
2424
- mkdir --parents $${PRE_COMMIT_HOME}
2525
- touch $${PRE_COMMIT_HOME}/.keep
@@ -40,6 +40,12 @@ steps:
4040
image: minio/mc:latest
4141
environment:
4242
<<: [*pre_commit_config, *minio_config]
43+
MINIO_ACCESS_KEY:
44+
from_secret: minio_access_key
45+
MINIO_SECRET_KEY:
46+
from_secret: minio_secret_key
4347
commands:
4448
- mc alias set minio $${MINIO_HOST} $${MINIO_ACCESS_KEY} $${MINIO_SECRET_KEY}
4549
- mc cp --recursive $${PRE_COMMIT_HOME}/ minio/$${MINIO_BUCKET}/${CI_REPO}/pre-commit/
50+
when:
51+
event: push

.woodpecker/wheels.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,5 @@ steps:
3434
commands:
3535
- pip install pipx
3636
- pipx run twine upload dist/* --verbose
37+
when:
38+
event: push

0 commit comments

Comments
 (0)