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