From a78da9b524465d674348aa0e9908ccafd5f1e3ac Mon Sep 17 00:00:00 2001 From: "minke.yu" Date: Tue, 22 Sep 2026 16:59:13 +0800 Subject: [PATCH] ci: Gitea Actions workflow to build sglang image on push to dsv41-pd Overseas node: original docker.io base (lmsysorg/sglang:dev-dsv41) and default pypi. Tags follow the ymkymx convention -- plus a moving -latest. Registry defaults to the Gitea instance's container registry, override with the REGISTRY variable. --- .gitea/workflows/build-image.yaml | 51 +++++++++++++++++++++++++++++++ Dockerfile.gitea | 11 +++++++ 2 files changed, 62 insertions(+) create mode 100644 .gitea/workflows/build-image.yaml create mode 100644 Dockerfile.gitea diff --git a/.gitea/workflows/build-image.yaml b/.gitea/workflows/build-image.yaml new file mode 100644 index 000000000..92db155eb --- /dev/null +++ b/.gitea/workflows/build-image.yaml @@ -0,0 +1,51 @@ +# Gitea Actions 自动构建 sglang 镜像(海外节点,原版源) +# 基底 lmsysorg/sglang:dev-dsv41(docker.io),依赖走 pypi.org 默认源。 +# 触发:push 到 dsv41-pd 分支。 +# +# 前置条件(一次性,在 Gitea 实例上配置): +# 1. 实例已注册 act_runner(Gitea Actions runner,标签含 ubuntu-latest) +# 2. 仓库 Settings → Secrets 添加: +# REGISTRY_USERNAME / REGISTRY_PASSWORD(推送镜像的账号,如 Gitea 访问令牌) +# 3. 可选:Settings → Actions → Variables 添加 REGISTRY(默认 git.agentwithu.com, +# 即 Gitea 自带容器 registry;也可填 docker.io 等) +name: build-sglang-image + +on: + push: + branches: [dsv41-pd] + +env: + REGISTRY: ${{ vars.REGISTRY != '' && vars.REGISTRY || 'git.agentwithu.com' }} + IMAGE_NAME: minke.yu/sglang + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Resolve tag + id: meta + run: | + SHA9=$(git rev-parse --short=9 HEAD) + echo "tag=${{ github.ref_name }}-${SHA9}-$(date +%Y%m%d-%H%M)" >> "$GITHUB_OUTPUT" + + - uses: docker/setup-buildx-action@v3 + + - uses: docker/login-action@v3 + with: + registry: ${{ env.REGISTRY }} + username: ${{ secrets.REGISTRY_USERNAME }} + password: ${{ secrets.REGISTRY_PASSWORD }} + + - uses: docker/build-push-action@v6 + with: + context: . + file: Dockerfile.gitea + push: true + tags: | + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ steps.meta.outputs.tag }} + ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:${{ github.ref_name }}-latest + # 基底 20GB 不变层走 GHA 缓存,源码层增量构建 + cache-from: type=gha + cache-to: type=gha,mode=max diff --git a/Dockerfile.gitea b/Dockerfile.gitea new file mode 100644 index 000000000..b98eb96e2 --- /dev/null +++ b/Dockerfile.gitea @@ -0,0 +1,11 @@ +# Gitea Actions 用(海外节点):原版 docker.io 基底 + 原版 pypi +# 与 b300 离线版(/data/ymk/build/Dockerfile)的区别: +# - 基底直用 docker.io 的 lmsysorg/sglang:dev-dsv41(不走 umirror/DaoCloud) +# - 不设 PIP_INDEX_URL,用默认 pypi.org +# - 源码由 CI checkout 后经 COPY 进镜像(不用 in-image clone) +FROM lmsysorg/sglang:dev-dsv41 + +# checkout 含 .git,setuptools-scm 可打戳(main 系分支 version 显示 dev 属正常) +COPY . /sgl-workspace/sglang + +RUN pip install --no-cache-dir -e /sgl-workspace/sglang/python