82 lines
2.3 KiB
YAML
82 lines
2.3 KiB
YAML
name: 'Docker meta'
|
|
inputs:
|
|
profile:
|
|
required: true
|
|
type: string
|
|
registry:
|
|
required: true
|
|
type: string
|
|
arch:
|
|
required: true
|
|
type: string
|
|
otp:
|
|
required: true
|
|
type: string
|
|
elixir:
|
|
required: false
|
|
type: string
|
|
default: ''
|
|
builder_base:
|
|
required: true
|
|
type: string
|
|
owner:
|
|
required: true
|
|
type: string
|
|
docker_tags:
|
|
required: true
|
|
type: string
|
|
|
|
outputs:
|
|
emqx_name:
|
|
description: "EMQX name"
|
|
value: ${{ steps.pre-meta.outputs.emqx_name }}
|
|
version:
|
|
description: "docker image version"
|
|
value: ${{ steps.meta.outputs.version }}
|
|
tags:
|
|
description: "docker image tags"
|
|
value: ${{ steps.meta.outputs.tags }}
|
|
labels:
|
|
description: "docker image labels"
|
|
value: ${{ steps.meta.outputs.labels }}
|
|
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: prepare for docker/metadata-action
|
|
id: pre-meta
|
|
shell: bash
|
|
run: |
|
|
emqx_name=${{ inputs.profile }}
|
|
img_suffix=${{ inputs.arch }}
|
|
img_labels="org.opencontainers.image.otp.version=${{ inputs.otp }}"
|
|
if [ -n "${{ inputs.elixir }}" ]; then
|
|
emqx_name="emqx-elixir"
|
|
img_suffix="elixir-${{ inputs.arch }}"
|
|
img_labels="org.opencontainers.image.elixir.version=${{ inputs.elixir }}\n${img_labels}"
|
|
fi
|
|
if [ "${{ inputs.profile }}" = "emqx" ]; then
|
|
img_labels="org.opencontainers.image.edition=Opensource\n${img_labels}"
|
|
fi
|
|
if [ "${{ inputs.profile }}" = "emqx-enterprise" ]; then
|
|
img_labels="org.opencontainers.image.edition=Enterprise\n${img_labels}"
|
|
fi
|
|
if [[ "${{ inputs.builder_base }}" =~ "alpine" ]]; then
|
|
img_suffix="${img_suffix}-alpine"
|
|
fi
|
|
echo "emqx_name=${emqx_name}" >> $GITHUB_OUTPUT
|
|
echo "img_suffix=${img_suffix}" >> $GITHUB_OUTPUT
|
|
echo "img_labels=${img_labels}" >> $GITHUB_OUTPUT
|
|
echo "img_name=${{ inputs.registry }}/${{ inputs.owner }}/${{ inputs.profile }}" >> $GITHUB_OUTPUT
|
|
- uses: docker/metadata-action@v4
|
|
id: meta
|
|
with:
|
|
images:
|
|
${{ steps.pre-meta.outputs.img_name }}
|
|
flavor: |
|
|
suffix=-${{ steps.pre-meta.outputs.img_suffix }}
|
|
tags: |
|
|
type=raw,value=${{ inputs.docker_tags }}
|
|
labels:
|
|
${{ steps.pre-meta.outputs.img_labels }}
|