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 }}