name: Build and Push Docker image
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 检出代码
uses: actions/checkout@v4
with:
ref: ${{ github.ref_name }}
- name: 输出 Docker 版本
run: docker version
- name: 设置 Docker 镜像标签
id: vars
run: |
ref="${{ github.ref }}"
if [[ "$ref" == "refs/heads/main" ]]; then
echo "tag=latest" >> $GITHUB_OUTPUT
elif [[ "$ref" == refs/tags/* ]]; then
echo "tag=${ref#refs/tags/}" >> $GITHUB_OUTPUT
elif [[ "$ref" == refs/heads/* ]]; then
echo "tag=${ref#refs/heads/}" >> $GITHUB_OUTPUT
else
echo "tag=latest" >> $GITHUB_OUTPUT
fi
- name: 登录 GitHub 容器注册表
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: 设置 Buildx
uses: docker/setup-buildx-action@v3
- name: 构建并推送多架构 Docker 镜像
run: |
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t ghcr.io/${{ github.repository_owner }}/quarkdrive-webdav:${{ steps.vars.outputs.tag }} \
--push \
-f docker/Dockerfile .