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,${{ vars.DOCKERHUB_TAG }}: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