Skip to content

Commit

Permalink
feat: Support building all-in-one images in GitHub action
Browse files Browse the repository at this point in the history
  • Loading branch information
CH3CHO committed Jun 3, 2024
1 parent 7466985 commit 053d7e2
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 0 deletions.
58 changes: 58 additions & 0 deletions .github/workflows/build-aio-image-and-push copy.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: Build All-in-One Image and Push to Image Registry

on:
push:
tags:
- "aio-v*.*.*"
workflow_dispatch: ~

jobs:
build-aio-image:
runs-on: ubuntu-latest
env:
IMAGE_REGISTRY: ${{ vars.IMAGE_REGISTRY || 'higress-registry.cn-hangzhou.cr.aliyuncs.com' }}
IMAGE_NAME: ${{ vars.ALL_IN_ONE_IMAGE_NAME || 'higress/all-in-one' }}
steps:
- name: "Checkout ${{ github.ref }}"
uses: actions/checkout@v3
with:
fetch-depth: 1

- name: Calculate Docker metadata
id: docker-meta
uses: docker/metadata-action@v4
with:
images: |
${{ env.IMAGE_REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=sha
type=match,pattern=aio-v(.*),group=1
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'main') }}
- name: Login to Docker Registry
uses: docker/login-action@v2
with:
registry: ${{ env.IMAGE_REGISTRY }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v2

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Build Docker Image and Push
run: |
cd all-in-one/
readarray -t IMAGES <<< "${{ steps.docker-meta.outputs.tags }}"
baseImage=""
for image in ${IMAGES[@]}; do
echo "Image: $image"
if [ -z "$baseImage" ]; then
IMG="${image}" make docker-buildx-push
baseImage="$image"
else
docker buildx imagetools create "$baseImage" --tag "$image"
fi
done
24 changes: 24 additions & 0 deletions all-in-one/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
REGISTRY ?= higress-registry.cn-hangzhou.cr.aliyuncs.com/higress/
IMAGE_NAME ?= all-in-one
IMAGE_VERSION ?= 1.4.0
BUILD_TIME := $(shell date "+%Y%m%d-%H%M%S")
COMMIT_ID := $(shell git rev-parse --short HEAD 2>/dev/null)
IMAGE_TAG = $(if $(strip $(IMAGE_VERSION)),${IMAGE_VERSION},${BUILD_TIME}-${COMMIT_ID})
IMG ?= ${REGISTRY}${IMAGE_NAME}:${IMAGE_TAG}

.DEFAULT:
docker-build:
docker build \
-t ${IMG} \
.
@echo ""
@echo "Image: ${IMG}"

docker-buildx-push:
docker buildx build --no-cache \
--platform linux/amd64,linux/arm64 \
-t ${IMG} \
--push \
.
@echo ""
@echo "Image: ${IMG}"

0 comments on commit 053d7e2

Please sign in to comment.