diff --git a/.github/workflows/build-images.yml b/.github/workflows/build-images.yml index 7e4ad8445..da1f80ada 100644 --- a/.github/workflows/build-images.yml +++ b/.github/workflows/build-images.yml @@ -4,6 +4,16 @@ 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: @@ -28,11 +38,39 @@ jobs: 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 }}:latest - platforms: linux/amd64,linux/arm64,linux/arm/v7 \ No newline at end of file + tags: ${{ vars.DOCKERHUB_TAG }}:${{ steps.image_tag.outputs.TAG }} + platforms: linux/amd64,linux/arm64,linux/arm/v7 + cache-from: type=gha + cache-to: type=gha,mode=max