From 97bbe07789998a6113afa223b6bc81d5f5623c43 Mon Sep 17 00:00:00 2001 From: biss Date: Tue, 21 Jul 2026 11:49:52 +0800 Subject: [PATCH] prerelease --- .gitea/workflows/docker-publish.yml | 12 ++++++++++++ README.md | 11 ++++++++++- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/.gitea/workflows/docker-publish.yml b/.gitea/workflows/docker-publish.yml index 7901863..a67668b 100644 --- a/.gitea/workflows/docker-publish.yml +++ b/.gitea/workflows/docker-publish.yml @@ -75,6 +75,17 @@ jobs: cache-from: type=registry,ref=docker.io/${{ vars.DOCKERHUB_IMAGE }}:buildcache cache-to: type=registry,ref=docker.io/${{ vars.DOCKERHUB_IMAGE }}:buildcache,mode=max + - name: Detect release type + id: release_type + if: gitea.ref_type == 'tag' + shell: bash + run: | + case "$GITHUB_REF_NAME" in + *-*) prerelease=true ;; + *) prerelease=false ;; + esac + echo "prerelease=$prerelease" >> "$GITHUB_OUTPUT" + - name: Create Gitea release if: gitea.ref_type == 'tag' uses: https://gitea.com/actions/gitea-release-action@v1 @@ -82,6 +93,7 @@ jobs: token: ${{ secrets.GITEA_TOKEN }} tag_name: ${{ gitea.ref_name }} name: ${{ gitea.ref_name }} + prerelease: ${{ steps.release_type.outputs.prerelease }} body: | Docker 镜像已发布: diff --git a/README.md b/README.md index 7dd19d2..621c5ca 100644 --- a/README.md +++ b/README.md @@ -139,13 +139,22 @@ docker build --tag hengzhun-exam-system:local . 4. 使用对 `biss` 组织拥有软件包写权限的 Gitea 账号,在“设置 → 应用 → 生成新令牌”中创建具有 Package Read & Write 权限的个人访问令牌。在仓库 Actions Variables 中添加 `REGISTRY_USERNAME`,值为该令牌所属的用户名;在 Actions Secrets 中添加 `REGISTRY_TOKEN`,值为个人访问令牌。自定义 Secret 不能使用 Gitea 保留的 `GITEA_` 前缀,也不能用工作流内置的 `GITEA_TOKEN` 代替该软件包令牌。 5. 确保 Gitea Actions 与仓库的软件包注册表已启用,并且 `ubuntu-latest` Runner 能访问 Docker daemon、GitHub、Docker Hub 和 `git.biss.click`。双架构构建还需要 Runner 允许 QEMU 注册步骤运行。 -推送到 `master` 后会发布 `latest` 和 `sha-<短提交号>`;推送形如 `v1.2.3` 的 Git 标签后会发布 `1.2.3`、`1.2` 和对应的提交标签,并在镜像推送成功后自动创建同名 Gitea Release。例如: +推送到 `master` 后会发布 `latest` 和 `sha-<短提交号>`;推送形如 `v1.2.3` 的 Git 标签后会发布 `1.2.3`、`1.2` 和对应的提交标签,并在镜像推送成功后自动创建同名正式 Gitea Release。例如: ```powershell git tag v1.2.3 git push origin v1.2.3 ``` +带连字符预发布后缀的语义化版本标签会自动创建 Gitea Pre-release,例如: + +```powershell +git tag v1.3.0-rc.1 +git push origin v1.3.0-rc.1 +``` + +该版本的镜像标签为 `1.3.0-rc.1`,不会覆盖稳定版的 `1.3` 或 `latest` 标签。 + 工作流也支持从 Gitea Actions 页面手动运行。构建缓存保存为同一 Docker Hub 仓库中的 `buildcache` 标签,以加快后续构建。Release 使用工作流内置的 `GITEA_TOKEN` 创建,无需添加额外 Secret;仓库或组织“Actions → General”中的任务令牌最大权限必须允许 Releases Write。 首次成功推送后,容器镜像会出现在 `biss` 所有者的软件包列表。Gitea 的软件包归属于用户或组织,不会天然归属于某个仓库;打开该软件包的设置页面,将它关联到 `Exam-Information-System`,即可让它显示在此仓库的“软件包”页。之后可使用 `docker pull git.biss.click/biss/exam-information-system:latest` 拉取。