74 lines
2.7 KiB
YAML
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.docker_version_prefix}}-${{inputs.additional_version}}"; 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.docker_version_prefix}}-${{inputs.additional_version}}
|
|
fi
|
|
fi
|
|
shell: sh
|