docker-image/action.yml

65 lines
2.4 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'
outputs:
image_version:
description: "Image version"
value: ${{ steps.git.outputs.short_hash }}
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 "::set-output name=version::${{ inputs.image_name }}:${{inputs.docker_version_prefix}}-${{ steps.git.outputs.short_hash }}"
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 }}
docker push ${{ inputs.image_name }}:${{inputs.docker_version_prefix}}-${{ steps.git.outputs.short_hash }}
if [[ "${{inputs.additional_version}}" != "" ]]; then
git push ${{ inputs.image_name }}:${{inputs.additional_version}}-${{inputs.docker_version_prefix}}
fi
shell: sh