docker-image/action.yml
Ondrej Vlach 262ae56e40
Some checks failed
test / test (push) Failing after 1m48s
gitea - testing
2025-01-25 16:47:37 +01:00

74 lines
2.7 KiB
YAML

name: 'Docker image' # TODO: rewrite to go
description: 'Make docker image'
inputs:
deployment_login:
description: 'Deployment login'
required: true
registry:
description: 'Registry'
required: true
image_name:
description: 'Image name'
required: true
docker_version_prefix:
description: 'docker image version prefix'
required: false
default: ''
additional_args:
description: 'Docker build arguments'
required: false
default: ''
additional_version:
description: 'Additional version'
required: false
default: ''
docker_file:
description: 'Dockerfile'
required: false
default: 'Dockerfile'
docker_push:
description: 'Push images'
required: false
default: true
outputs:
image_version:
description: "Image version"
value: ${{ steps.git.outputs.short_hash }}
image_ref:
description: "Image ref"
value: ${{ steps.image.outputs.version }}
runs:
using: "composite"
steps:
- uses: https://github.com/actions/checkout.git@v4
- name: Login to ${{inputs.registry}}
uses: https://github.com/docker/login-action@v3
with:
username: ${{ inputs.deployment_login }}
password: ${{ inputs.deployment_login }}
registry: ${{inputs.registry}}
- name: Get short hash from git repository
id: git
run: echo "::set-output name=short_hash::$(git rev-parse --short HEAD)"
shell: sh
- name: Store image version
id: image
run: echo "version=${{ inputs.image_name }}:${{inputs.docker_version_prefix}}-${{ steps.git.outputs.short_hash }}" >> $GITHUB_OUTPUT && cat $GITHUB_OUTPUT
shell: sh
- name: Build additional args (version etc.)
id: additional_args
run: echo "::set-output name=additional_args::$(if [[ "${{inputs.additional_version}}" != "" ]]; then echo "-t ${{ inputs.image_name }}:${{inputs.additional_version}}-${{inputs.docker_version_prefix}}"; else echo ""; fi)"
shell: sh
- name: Build and push docker
run: |
docker build . -f ${{inputs.docker_file}} -t ${{ inputs.image_name }}:${{inputs.docker_version_prefix}}-${{ steps.git.outputs.short_hash }} ${{steps.additional_args.outputs.additional_args}} ${{ inputs.additional_args }}
if [[ "${{inputs.docker_push}}" == "true" ]]; then
docker push ${{ inputs.image_name }}:${{inputs.docker_version_prefix}}-${{ steps.git.outputs.short_hash }}
if [[ "${{inputs.additional_version}}" != "" ]]; then
docker push ${{ inputs.image_name }}:${{inputs.additional_version}}-${{inputs.docker_version_prefix}}
fi
fi
shell: sh