btpanel/.gitea/workflows/build-docker-images.yml
2025-04-01 20:51:02 +08:00

73 lines
2.2 KiB
YAML

name: Docker Image Build and Push
on:
workflow_dispatch:
inputs:
version:
description: '宝塔版本'
required: true
default: '9.5.0'
jobs:
build-and-push-multiarch:
name: Build and Push Multi-Arch Docker Image
runs-on: ubuntu-latest
steps:
- name: Checkout code from lnmp branch
uses: actions/checkout@v3
with:
ref: lnmp
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build AMD64 Docker image
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile
platforms: linux/amd64
push: false
tags: |
ldxw/btpanel:latest-amd64
ldxw/btpanel:${{ github.event.inputs.version }}-amd64
- name: Build ARM64 Docker image
uses: docker/build-push-action@v4
with:
context: .
file: ./arm64/Dockerfile
platforms: linux/arm64
push: false
tags: |
ldxw/btpanel:latest-arm64
ldxw/btpanel:${{ github.event.inputs.version }}-arm64
- name: Create and push multi-arch manifest
run: |
docker manifest create \
ldxw/btpanel:latest \
ldxw/btpanel:latest-amd64 \
ldxw/btpanel:latest-arm64
docker manifest annotate \
ldxw/btpanel:latest \
ldxw/btpanel:latest-arm64 \
--os linux --arch arm64
docker manifest push ldxw/btpanel:latest
docker manifest create \
ldxw/btpanel:${{ github.event.inputs.version }} \
ldxw/btpanel:${{ github.event.inputs.version }}-amd64 \
ldxw/btpanel:${{ github.event.inputs.version }}-arm64
docker manifest annotate \
ldxw/btpanel:${{ github.event.inputs.version }} \
ldxw/btpanel:${{ github.event.inputs.version }}-arm64 \
--os linux --arch arm64
docker manifest push ldxw/btpanel:${{ github.event.inputs.version }}