Update GitHub Actions workflow for ZeroTier Docker build

- Refactored workflow to dynamically fetch latest ZeroTier tag
- Added support for scheduled builds every 6 hours
- Enabled manual workflow dispatch
- Updated Docker build and push actions to latest versions
- Configured multi-tag image publishing strategy
This commit is contained in:
markxu 2025-03-09 22:05:28 +08:00
parent fbe294c2b6
commit c607b5d713

View File

@ -1,28 +1,43 @@
name: Build and Push Docker Image
name: Docker Build on ZeroTier
on:
push:
branches:
- master
- master # 当 master 分支有推送时触发
schedule:
- cron: '0 0 * * *' # 每天的 0 点执行
- cron: '0 */6 * * *' # 每6小时检查一次
workflow_dispatch: # 允许手动触发
jobs:
build:
runs-on: ubuntu-20.04
check-and-build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Checkout code
uses: actions/checkout@v4
- name: Get latest Tailscale tag
id: get_tag
run: |
LATEST_TAG=$(curl -s https://api.github.com/repos/zerotier/ZeroTierOne/tags | jq -r '.[0].name')
echo "LATEST_TAG=${LATEST_TAG}" >> $GITHUB_ENV
echo "latest_tag=${LATEST_TAG}" >> $GITHUB_OUTPUT
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
- name: Log in to Docker Hub
uses: docker/login-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and push Docker image
run: ./build.sh
- name: Build and push tagged version
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/zerotier-planet-test:latest
${{ secrets.DOCKERHUB_USERNAME }}/zerotier-planet-test:${{ steps.get_tag.outputs.latest_tag }}
build-args: |
DERP_VERSION=${{ steps.get_tag.outputs.latest_tag }}