docker-image/action.yml

74 lines
2.7 KiB
YAML
Raw Normal View History

2023-12-09 19:17:48 +01:00
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
2025-01-25 12:38:49 +01:00
docker_version_prefix:
description: 'docker image version prefix'
required: false
default: ''
additional_args:
2023-12-09 19:17:48 +01:00
description: 'Docker build arguments'
required: false
default: ''
2025-01-25 12:38:49 +01:00
additional_version:
description: 'Additional version'
required: false
default: ''
2025-01-25 12:47:11 +01:00
docker_file:
description: 'Dockerfile'
required: false
default: 'Dockerfile'
2025-01-25 16:02:06 +01:00
docker_push:
description: 'Push images'
required: false
default: true
2023-12-09 19:17:48 +01:00
outputs:
image_version:
description: "Image version"
value: ${{ steps.git.outputs.short_hash }}
2025-01-25 15:26:53 +01:00
image_ref:
description: "Image ref"
value: ${{ steps.image.outputs.version }}
2023-12-09 19:17:48 +01:00
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
2025-01-25 12:38:49 +01:00
- name: Store image version
id: image
2025-01-25 16:02:06 +01:00
run: echo "version=${{ inputs.image_name }}:${{inputs.docker_version_prefix}}-${{ steps.git.outputs.short_hash }}" >> $GITHUB_OUTPUT && cat $GITHUB_OUTPUT
2025-01-25 12:38:49 +01:00
shell: sh
- name: Build additional args (version etc.)
id: additional_args
2025-01-25 20:31:58 +01:00
run: echo "::set-output name=additional_args::$(if [[ "${{inputs.additional_version}}" != "" ]]; then echo "-t ${{ inputs.image_name }}:${{inputs.docker_version_prefix}}-${{inputs.additional_version}}"; else echo ""; fi)"
2025-01-25 12:38:49 +01:00
shell: sh
2023-12-09 19:17:48 +01:00
- name: Build and push docker
run: |
2025-01-25 12:47:11 +01:00
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 }}
2025-01-25 16:02:06 +01:00
if [[ "${{inputs.docker_push}}" == "true" ]]; then
docker push ${{ inputs.image_name }}:${{inputs.docker_version_prefix}}-${{ steps.git.outputs.short_hash }}
2025-01-25 12:47:11 +01:00
2025-01-25 16:02:06 +01:00
if [[ "${{inputs.additional_version}}" != "" ]]; then
2025-01-25 20:31:58 +01:00
docker push ${{ inputs.image_name }}:${{inputs.docker_version_prefix}}-${{inputs.additional_version}}
2025-01-25 16:02:06 +01:00
fi
2025-01-25 12:47:11 +01:00
fi
2023-12-09 19:17:48 +01:00
shell: sh