59 lines
1.9 KiB
YAML
59 lines
1.9 KiB
YAML
name: "Setup Docker Builder"
|
|
description: "Sets up a Docker multi-platform builder with GitHub Actions, including logging into GHCR and Docker Hub."
|
|
branding:
|
|
color: "orange"
|
|
icon: "arrow-up-circle"
|
|
|
|
inputs:
|
|
ghcr_user:
|
|
description: "The GitHub Container Registry user"
|
|
required: false
|
|
ghcr_token:
|
|
description: "The GitHub Container Registry token"
|
|
required: false
|
|
docker_hub_user:
|
|
description: "The Docker Hub user"
|
|
required: false
|
|
docker_hub_token:
|
|
description: "The Docker Hub token"
|
|
required: false
|
|
|
|
outputs:
|
|
cache_from:
|
|
description: "The cache_from value for docker/build-push-action"
|
|
value: ${{ steps.helpers.outputs.cache_from }}
|
|
cache_to:
|
|
description: "The cache_to value for docker/build-push-action"
|
|
value: ${{ steps.helpers.outputs.cache_to }}
|
|
|
|
runs:
|
|
using: "composite"
|
|
steps:
|
|
- uses: docker/setup-qemu-action@v3
|
|
- uses: crazy-max/ghaction-github-runtime@v3
|
|
- uses: docker/setup-buildx-action@v3
|
|
- uses: docker/login-action@v3
|
|
if: ${{ inputs.ghcr_user && inputs.ghcr_token }}
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ inputs.ghcr_user }}
|
|
password: ${{ inputs.ghcr_token }}
|
|
- uses: docker/login-action@v3
|
|
if: ${{ inputs.docker_hub_user && inputs.docker_hub_token }}
|
|
with:
|
|
username: ${{ inputs.docker_hub_user }}
|
|
password: ${{ inputs.docker_hub_token }}
|
|
- id: helpers
|
|
shell: bash
|
|
run: |
|
|
if [[ "${{ github.actor }}" == "nektos/act" ]]; then
|
|
echo "cache_from=" >> $GITHUB_OUTPUT
|
|
echo "DOCKER_CACHE_FROM=" >> $GITHUB_ENV
|
|
echo "cache_to=" >> $GITHUB_OUTPUT
|
|
echo "DOCKER_CACHE_TO=" >> $GITHUB_ENV
|
|
else
|
|
echo "cache_from=type=gha" >> $GITHUB_OUTPUT
|
|
echo "DOCKER_CACHE_FROM=type=gha" >> $GITHUB_ENV
|
|
echo "cache_to=type=gha,mode=max" >> $GITHUB_OUTPUT
|
|
echo "DOCKER_CACHE_TO=type=gha,mode=max" >> $GITHUB_ENV
|
|
fi
|