| 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 }} |
|
|