devops/.forgejo/actions/build-docker/action.yml

63 lines
2.7 KiB
YAML

name: Build and Publish Docker Image
description: Define IMAGE_NAME to Git Hub env, based on repository name
inputs:
username:
description: Registry User Name
required: true
password:
description: Registry Password
required: true
dockerfile:
description: The Dockerfile to build
required: false
context:
description: Build context directory (absolute or relative to GITHUB_WORKSPACE)
required: false
runs:
using: composite
steps:
- name: Build-Docker Set Image Name
if: ${{ env.IMAGE_NAME == '' }}
uses: https://git.lhprovedor.com.br/leandro/devops/.forgejo/actions/set-image-name@main
with:
username: ${{ inputs.username }}
# Both dockerfile and context provided
- name: Build-Docker Build (df + ctx)
if: ${{ inputs.dockerfile != '' && inputs.context != '' }}
uses: https://git.lhprovedor.com.br/leandro/forgejo-kaniko-action@v3
with:
image: ${{ inputs.username }}/${{ env.IMAGE_NAME }}:${{ github.sha }},${{ inputs.username }}/${{ env.IMAGE_NAME }}:latest
username: ${{ inputs.username }}
password: ${{ inputs.password }}
dockerfile: ${{ inputs.dockerfile }}
context: ${{ inputs.context }}
# Only dockerfile provided
- name: Build-Docker Build (df only)
if: ${{ inputs.dockerfile != '' && (inputs.context == '' || !inputs.context) }}
uses: https://git.lhprovedor.com.br/leandro/forgejo-kaniko-action@v3
with:
image: ${{ inputs.username }}/${{ env.IMAGE_NAME }}:${{ github.sha }},${{ inputs.username }}/${{ env.IMAGE_NAME }}:latest
username: ${{ inputs.username }}
password: ${{ inputs.password }}
dockerfile: ${{ inputs.dockerfile }}
# Only context provided
- name: Build-Docker Build (ctx only)
if: ${{ (inputs.dockerfile == '' || !inputs.dockerfile) && inputs.context != '' }}
uses: https://git.lhprovedor.com.br/leandro/forgejo-kaniko-action@v3
with:
image: ${{ inputs.username }}/${{ env.IMAGE_NAME }}:${{ github.sha }},${{ inputs.username }}/${{ env.IMAGE_NAME }}:latest
username: ${{ inputs.username }}
password: ${{ inputs.password }}
context: ${{ inputs.context }}
# Neither dockerfile nor context provided
- name: Build-Docker Build (defaults)
if: ${{ (inputs.dockerfile == '' || !inputs.dockerfile) && (inputs.context == '' || !inputs.context) }}
uses: https://git.lhprovedor.com.br/leandro/forgejo-kaniko-action@v3
with:
image: ${{ inputs.username }}/${{ env.IMAGE_NAME }}:${{ github.sha }},${{ inputs.username }}/${{ env.IMAGE_NAME }}:latest
username: ${{ inputs.username }}
password: ${{ inputs.password }}