forgejo-pages/.forgejo/workflows/build-docker.yml
2025-01-08 04:02:26 +08:00

61 lines
2 KiB
YAML

# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at https://mozilla.org/MPL/2.0/.
on:
push:
jobs:
docker:
runs-on: any
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up qemu for buildx
uses: docker/setup-qemu-action@v3
- name: Setup buildx
uses: docker/setup-buildx-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Docker - login to my git
uses: docker/login-action@v3
with:
registry: git.ronmi.tw
username: ronmi
password: ${{ secrets.PACKAGE_PUSH_KEY }}
- name: Docker - login to hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_HUB_USER }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}
- name: Setup go
uses: actions/setup-go@v5
with:
go-version: "1.23"
- name: Build arm64 binary
run: GOARCH=arm64 go build
- name: Build arm64 image
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/arm64
push: true
pull: true
tags: git.ronmi.tw/ronmi/forgejo-pages:arm64,ronmi/forgejo-pages:arm64
- name: Build amd64 binary
run: GOARCH=amd64 go build
- name: Build amd64 image
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64
push: true
pull: true
tags: git.ronmi.tw/ronmi/forgejo-pages:amd64,ronmi/forgejo-pages:amd64
- name: Create multiarch image
run: |
docker buildx imagetools create -t git.ronmi.tw/ronmi/forgejo-pages git.ronmi.tw/ronmi/forgejo-pages:arm64 git.ronmi.tw/ronmi/forgejo-pages:amd64
docker buildx imagetools create -t ronmi/forgejo-pages ronmi/forgejo-pages:arm64 ronmi/forgejo-pages:amd64