From 84a8d6f94e64bc4d6b527070e12b2a24f9c44db9 Mon Sep 17 00:00:00 2001 From: Hao Zhang Date: Tue, 24 Jun 2025 00:29:28 +0800 Subject: [PATCH 1/4] Add Woodpecker CI scripts. --- .woodpecker/README.md | 1 + .woodpecker/docker.yml | 31 +++++++++++++++++++++++++++++++ .woodpecker/wheels.yml | 36 ++++++++++++++++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 .woodpecker/README.md create mode 100644 .woodpecker/docker.yml create mode 100644 .woodpecker/wheels.yml diff --git a/.woodpecker/README.md b/.woodpecker/README.md new file mode 100644 index 0000000..67851d4 --- /dev/null +++ b/.woodpecker/README.md @@ -0,0 +1 @@ +This folder stores scripts for testing in our own CI/CD platform based on Woodpecker CI located in USTC Knowledge Computing Laboratory, which may contains many absolute URLs hard coded, so do not use it. diff --git a/.woodpecker/docker.yml b/.woodpecker/docker.yml new file mode 100644 index 0000000..5f6249f --- /dev/null +++ b/.woodpecker/docker.yml @@ -0,0 +1,31 @@ +when: + - event: push + - event: pull_request + +clone: + git: + image: woodpeckerci/plugin-git:2.6 + settings: + tags: true + partial: false + +steps: + - name: tagging + image: mcp/git:latest + commands: + - git describe --tags | tee .tag + + - name: docker + image: woodpeckerci/plugin-docker-buildx:6-insecure + settings: + repo: git.kclab.cloud/hzhangxyz/qmb + username: hzhangxyz + password: + from_secret: gitea_package + registry: git.kclab.cloud + tags_file: .tag + buildkit_config: | + [registry."docker.io"] + mirrors = ["https://docker.mirrors.kclab.cloud/"] + build_args: + PYPI_MIRROR: https://mirrors.ustc.edu.cn/pypi/simple diff --git a/.woodpecker/wheels.yml b/.woodpecker/wheels.yml new file mode 100644 index 0000000..9d1ef58 --- /dev/null +++ b/.woodpecker/wheels.yml @@ -0,0 +1,36 @@ +when: + - event: push + - event: pull_request + +variables: + - &pip_config + PIP_INDEX_URL: https://mirrors.ustc.edu.cn/pypi/simple + - &repo_config + TWINE_REPOSITORY_URL: https://git.kclab.cloud/api/packages/hzhangxyz/pypi + TWINE_USERNAME: hzhangxyz + TWINE_PASSWORD: + from_secret: gitea_package + +clone: + git: + image: woodpeckerci/plugin-git:2.6 + settings: + tags: true + partial: false + +steps: + - name: build + image: python:3.12 + environment: + <<: *pip_config + commands: + - pip install pipx + - pipx run build + + - name: upload + image: python:3.12 + environment: + <<: [*pip_config, *repo_config] + commands: + - pip install pipx + - pipx run twine upload dist/* --verbose From 92fd137385914141b33c617652d83d2bb8cd6495 Mon Sep 17 00:00:00 2001 From: Hao Zhang Date: Tue, 24 Jun 2025 10:37:18 +0800 Subject: [PATCH 2/4] Add pre-commit for Woodpecker CI. --- .woodpecker/pre-commit.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .woodpecker/pre-commit.yml diff --git a/.woodpecker/pre-commit.yml b/.woodpecker/pre-commit.yml new file mode 100644 index 0000000..a91368d --- /dev/null +++ b/.woodpecker/pre-commit.yml @@ -0,0 +1,17 @@ +when: + - event: push + - event: pull_request + +variables: + - &pip_config + PIP_INDEX_URL: https://mirrors.ustc.edu.cn/pypi/simple + +steps: + - name: pre-commit + image: python:3.12 + environment: + <<: *pip_config + commands: + - pip install pre-commit + - pip install '.[dev]' + - pre-commit run --all-files From da4717c2a3b4f7aa9f901094130cc016a0418b3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hao=20Zhang=28=E5=BC=A0=E6=B5=A9=29?= Date: Tue, 24 Jun 2025 11:18:09 +0800 Subject: [PATCH 3/4] Update .woodpecker/README.md Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .woodpecker/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.woodpecker/README.md b/.woodpecker/README.md index 67851d4..e735a0f 100644 --- a/.woodpecker/README.md +++ b/.woodpecker/README.md @@ -1 +1 @@ -This folder stores scripts for testing in our own CI/CD platform based on Woodpecker CI located in USTC Knowledge Computing Laboratory, which may contains many absolute URLs hard coded, so do not use it. +This folder contains scripts for testing in our own CI/CD platform based on Woodpecker CI, located in the USTC Knowledge Computing Laboratory. These scripts may contain many hard-coded absolute URLs, so they should not be used elsewhere. From ce81031d39cf582d5be70b63724d8b73a6ac8576 Mon Sep 17 00:00:00 2001 From: Hao Zhang Date: Tue, 24 Jun 2025 13:49:03 +0800 Subject: [PATCH 4/4] Add cache support in pre-commit. --- .woodpecker/docker.yml | 34 ++++++++++++++++++++++++++++++++++ .woodpecker/pre-commit.yml | 30 +++++++++++++++++++++++++++++- 2 files changed, 63 insertions(+), 1 deletion(-) diff --git a/.woodpecker/docker.yml b/.woodpecker/docker.yml index 5f6249f..db0ebb2 100644 --- a/.woodpecker/docker.yml +++ b/.woodpecker/docker.yml @@ -2,6 +2,17 @@ when: - event: push - event: pull_request +variables: + - &docker_config + DOCKER_CACHE: /woodpecker/cache/docker + - &minio_config + MINIO_HOST: https://s3.kclab.cloud + MINIO_ACCESS_KEY: + from_secret: minio_access_key + MINIO_SECRET_KEY: + from_secret: minio_secret_key + MINIO_BUCKET: cache-53030 + clone: git: image: woodpeckerci/plugin-git:2.6 @@ -10,6 +21,17 @@ clone: partial: false steps: + - name: open cache + image: minio/mc:latest + environment: + <<: [*docker_config, *minio_config] + commands: + - mkdir --parents $${DOCKER_CACHE} + - touch $${DOCKER_CACHE}/.keep + - mc alias set minio $${MINIO_HOST} $${MINIO_ACCESS_KEY} $${MINIO_SECRET_KEY} + - mc cp --recursive minio/$${MINIO_BUCKET}/${CI_REPO}/docker/ $${DOCKER_CACHE}/ + failure: ignore + - name: tagging image: mcp/git:latest commands: @@ -24,8 +46,20 @@ steps: from_secret: gitea_package registry: git.kclab.cloud tags_file: .tag + cache-to: type=local,dest=/woodpecker/cache/docker + cache-from: + - type=local\\,src=/woodpecker/cache/docker buildkit_config: | [registry."docker.io"] mirrors = ["https://docker.mirrors.kclab.cloud/"] build_args: PYPI_MIRROR: https://mirrors.ustc.edu.cn/pypi/simple + + - name: save cache + image: minio/mc:latest + environment: + <<: [*docker_config, *minio_config] + commands: + - mc alias set minio $${MINIO_HOST} $${MINIO_ACCESS_KEY} $${MINIO_SECRET_KEY} + - mc cp --recursive $${DOCKER_CACHE}/ minio/$${MINIO_BUCKET}/${CI_REPO}/docker/ + failure: ignore diff --git a/.woodpecker/pre-commit.yml b/.woodpecker/pre-commit.yml index a91368d..9449c8f 100644 --- a/.woodpecker/pre-commit.yml +++ b/.woodpecker/pre-commit.yml @@ -5,13 +5,41 @@ when: variables: - &pip_config PIP_INDEX_URL: https://mirrors.ustc.edu.cn/pypi/simple + - &pre_commit_config + PRE_COMMIT_HOME: /woodpecker/cache/pre-commit + - &minio_config + MINIO_HOST: https://s3.kclab.cloud + MINIO_ACCESS_KEY: + from_secret: minio_access_key + MINIO_SECRET_KEY: + from_secret: minio_secret_key + MINIO_BUCKET: cache-53030 steps: + - name: open cache + image: minio/mc:latest + environment: + <<: [*pre_commit_config, *minio_config] + commands: + - mkdir --parents $${PRE_COMMIT_HOME} + - touch $${PRE_COMMIT_HOME}/.keep + - mc alias set minio $${MINIO_HOST} $${MINIO_ACCESS_KEY} $${MINIO_SECRET_KEY} + - mc cp --recursive minio/$${MINIO_BUCKET}/${CI_REPO}/pre-commit/ $${PRE_COMMIT_HOME}/ + failure: ignore + - name: pre-commit image: python:3.12 environment: - <<: *pip_config + <<: [*pre_commit_config, *pip_config] commands: - pip install pre-commit - pip install '.[dev]' - pre-commit run --all-files + + - name: save cache + image: minio/mc:latest + environment: + <<: [*pre_commit_config, *minio_config] + commands: + - mc alias set minio $${MINIO_HOST} $${MINIO_ACCESS_KEY} $${MINIO_SECRET_KEY} + - mc cp --recursive $${PRE_COMMIT_HOME}/ minio/$${MINIO_BUCKET}/${CI_REPO}/pre-commit/