action.yaml 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. name: 'Docker meta'
  2. inputs:
  3. profile:
  4. required: true
  5. type: string
  6. registry:
  7. required: true
  8. type: string
  9. arch:
  10. required: true
  11. type: string
  12. otp:
  13. required: true
  14. type: string
  15. elixir:
  16. required: false
  17. type: string
  18. default: ''
  19. builder_base:
  20. required: true
  21. type: string
  22. owner:
  23. required: true
  24. type: string
  25. docker_tags:
  26. required: true
  27. type: string
  28. outputs:
  29. emqx_name:
  30. description: "EMQX name"
  31. value: ${{ steps.pre-meta.outputs.emqx_name }}
  32. version:
  33. description: "docker image version"
  34. value: ${{ steps.meta.outputs.version }}
  35. tags:
  36. description: "docker image tags"
  37. value: ${{ steps.meta.outputs.tags }}
  38. labels:
  39. description: "docker image labels"
  40. value: ${{ steps.meta.outputs.labels }}
  41. runs:
  42. using: composite
  43. steps:
  44. - name: prepare for docker/metadata-action
  45. id: pre-meta
  46. shell: bash
  47. run: |
  48. emqx_name=${{ inputs.profile }}
  49. img_suffix=${{ inputs.arch }}
  50. img_labels="org.opencontainers.image.otp.version=${{ inputs.otp }}"
  51. if [ -n "${{ inputs.elixir }}" ]; then
  52. emqx_name="emqx-elixir"
  53. img_suffix="elixir-${{ inputs.arch }}"
  54. img_labels="org.opencontainers.image.elixir.version=${{ inputs.elixir }}\n${img_labels}"
  55. fi
  56. if [ "${{ inputs.profile }}" = "emqx" ]; then
  57. img_labels="org.opencontainers.image.edition=Opensource\n${img_labels}"
  58. fi
  59. if [ "${{ inputs.profile }}" = "emqx-enterprise" ]; then
  60. img_labels="org.opencontainers.image.edition=Enterprise\n${img_labels}"
  61. fi
  62. if [[ "${{ inputs.builder_base }}" =~ "alpine" ]]; then
  63. img_suffix="${img_suffix}-alpine"
  64. fi
  65. echo "emqx_name=${emqx_name}" >> $GITHUB_OUTPUT
  66. echo "img_suffix=${img_suffix}" >> $GITHUB_OUTPUT
  67. echo "img_labels=${img_labels}" >> $GITHUB_OUTPUT
  68. echo "img_name=${{ inputs.registry }}/${{ inputs.owner }}/${{ inputs.profile }}" >> $GITHUB_OUTPUT
  69. - uses: docker/metadata-action@v4
  70. id: meta
  71. with:
  72. images:
  73. ${{ steps.pre-meta.outputs.img_name }}
  74. flavor: |
  75. suffix=-${{ steps.pre-meta.outputs.img_suffix }}
  76. tags: |
  77. type=raw,value=${{ inputs.docker_tags }}
  78. labels:
  79. ${{ steps.pre-meta.outputs.img_labels }}