| name: Build and Push Docker Image
|
|
|
| on:
|
| workflow_dispatch:
|
| push:
|
|
|
| tags:
|
| - 'v*'
|
|
|
| jobs:
|
| build:
|
| runs-on: ubuntu-latest
|
| permissions:
|
| packages: write
|
| contents: read
|
| steps:
|
| - uses: actions/checkout@v3
|
| - name: Set time zone
|
| uses: szenius/set-timezone@v1.0
|
| with:
|
| timezoneLinux: "Asia/Shanghai"
|
| timezoneMacos: "Asia/Shanghai"
|
| timezoneWindows: "China Standard Time"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| - name: Login to GHCR
|
| uses: docker/login-action@v2
|
| with:
|
| registry: ghcr.io
|
| username: ${{ github.repository_owner }}
|
| password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
| - name: Extract metadata (tags, labels) for Docker
|
| id: meta
|
| uses: docker/metadata-action@v4
|
| with:
|
| images: |
|
| ghcr.io/${{ github.repository }}
|
|
|
|
|
| tags: |
|
| type=schedule,pattern=nightly
|
| type=edge
|
| type=ref,event=branch
|
| type=ref,event=pr
|
| type=semver,pattern={{version}}
|
| type=semver,pattern={{major}}.{{minor}}
|
| type=semver,pattern={{major}}
|
|
|
| - name: Set up QEMU
|
| uses: docker/setup-qemu-action@v2
|
|
|
| - name: Set up Docker Buildx
|
| uses: docker/setup-buildx-action@v2
|
|
|
| - name: Build and push
|
| id: docker_build
|
| uses: docker/build-push-action@v4
|
| with:
|
| context: .
|
| platforms: linux/amd64,linux/arm64
|
| push: true
|
| tags: ${{ steps.meta.outputs.tags }}
|
| labels: ${{ steps.meta.outputs.labels }}
|
|
|