@@ -2,6 +2,28 @@ name: 构建并发布 Docker 镜像
22
33on :
44 workflow_dispatch :
5+ inputs :
6+ is_beta :
7+ type : boolean
8+ required : true
9+ description : " 开发版"
10+ default : true
11+ custom_version :
12+ type : string
13+ required : false
14+ description : " 版本号"
15+ default : " "
16+
17+ permissions :
18+ contents : read
19+ packages : write
20+ attestations : write
21+ id-token : write
22+
23+ env :
24+ REGISTRY : ghcr.io
25+ DOCKER_REPO : ${{ secrets.DOCKERHUB_USERNAME }}/tiktok-downloader
26+ GHCR_REPO : ghcr.io/${{ secrets.DOCKERHUB_USERNAME }}/tiktok-downloader
527
628jobs :
729 publish-docker :
@@ -16,10 +38,17 @@ jobs:
1638 - name : 获取最新的发布标签
1739 id : get-latest-release
1840 run : |
19- LATEST_TAG=$(curl -s \
20- -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
21- https://api.github.com/repos/${{ github.repository }}/releases/latest \
22- | jq -r '.tag_name')
41+ if [ -z "${{ github.event.inputs.custom_version }}" ]; then
42+ LATEST_TAG=$(curl -s \
43+ -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \
44+ https://api.github.com/repos/${{ github.repository }}/releases/latest \
45+ | jq -r '.tag_name')
46+ else
47+ LATEST_TAG=${{ github.event.inputs.custom_version }}
48+ fi
49+ if [ -z "$LATEST_TAG" ]; then
50+ exit 1
51+ fi
2352 echo "LATEST_TAG=$LATEST_TAG" >> $GITHUB_ENV
2453
2554 - name : 设置 QEMU
@@ -28,18 +57,37 @@ jobs:
2857 - name : 设置 Docker Buildx
2958 uses : docker/setup-buildx-action@v3
3059
31- - name : 登录到 DockerHub
60+ - name : 生成标签
61+ id : generate-tags
62+ run : |
63+ if [ "${{ inputs.is_beta }}" == "true" ]; then
64+ LATEST_TAG="${LATEST_TAG%.*}.$(( ${LATEST_TAG##*.} + 1 ))"
65+ echo "LATEST_TAG=$LATEST_TAG" >> $GITHUB_ENV
66+ TAGS="${{ env.DOCKER_REPO }}:${LATEST_TAG}-dev,${{ env.GHCR_REPO }}:${LATEST_TAG}-dev"
67+ else
68+ TAGS="${{ env.DOCKER_REPO }}:${LATEST_TAG},${{ env.DOCKER_REPO }}:latest,${{ env.GHCR_REPO }}:${LATEST_TAG},${{ env.GHCR_REPO }}:latest"
69+ fi
70+ echo "TAGS=$TAGS" >> $GITHUB_ENV
71+
72+ - name : 登录到 Docker Hub
3273 uses : docker/login-action@v3
3374 with :
3475 username : ${{ secrets.DOCKERHUB_USERNAME }}
3576 password : ${{ secrets.DOCKERHUB_TOKEN }}
3677
37- - name : 构建和推送 Docker hub
78+ - name : 登录到 GitHub Container Registry
79+ uses : docker/login-action@v3
80+ with :
81+ registry : ${{ env.REGISTRY }}
82+ username : ${{ github.actor }}
83+ password : ${{ secrets.GITHUB_TOKEN }}
84+
85+ - name : 构建和推送 Docker 镜像到 Docker Hub 和 GHCR
3886 uses : docker/build-push-action@v6
3987 with :
4088 context : .
4189 platforms : linux/amd64,linux/arm64
4290 push : true
43- tags : |
44- ${{ secrets.DOCKERHUB_USERNAME }}/tiktok-downloader:${{ env.LATEST_TAG }}
45- ${{ secrets.DOCKERHUB_USERNAME }}/tiktok-downloader:latest
91+ tags : ${{ env.TAGS }}
92+ provenance : false
93+ sbom : false
0 commit comments