74 lines
1.9 KiB
YAML
74 lines
1.9 KiB
YAML
name: Build images
|
|
|
|
on:
|
|
# schedule:
|
|
# - cron: '0 0 * * *' # Midnight every day
|
|
workflow_dispatch:
|
|
inputs:
|
|
build_type:
|
|
description: Build Type
|
|
required: true
|
|
default: edge
|
|
type: choice
|
|
options:
|
|
- edge
|
|
- dev
|
|
- stable
|
|
|
|
jobs:
|
|
build:
|
|
name: Build image
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@v3
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_TOKEN }}
|
|
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v3
|
|
with:
|
|
platforms: amd64,arm64,arm
|
|
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v3
|
|
with:
|
|
install: true
|
|
|
|
- name: Create the tag
|
|
id: image_tag
|
|
run: |
|
|
choice="${{ inputs.build_type }}"
|
|
out=""
|
|
|
|
# if the workflow is running on a branch, let the tag be the branch name
|
|
if [[ $GITHUB_REF == "refs/heads/"* ]] ; then
|
|
echo "TAG=${GITHUB_REF#'refs/heads/'}" >> $GITHUB_OUTPUT
|
|
exit 0
|
|
fi
|
|
|
|
tag="${GITHUB_REF#'refs/tags/'}"
|
|
case $choice in
|
|
edge)
|
|
out="TAG=$tag-edge"
|
|
;;
|
|
dev)
|
|
out="TAG=$tag-dev"
|
|
;;
|
|
stable)
|
|
out="TAG=$tag-stable,latest"
|
|
;;
|
|
esac
|
|
echo $out >> $GITHUB_OUTPUT
|
|
|
|
- name: Build and publish image
|
|
uses: docker/build-push-action@v5
|
|
with:
|
|
context: .
|
|
push: true
|
|
tags: ${{ vars.DOCKERHUB_TAG }}:${{ steps.image_tag.outputs.TAG }}
|
|
platforms: linux/amd64,linux/arm64,linux/arm/v7 |