-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathaction.yml
116 lines (116 loc) · 3.62 KB
/
action.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
---
name: BEAM Docker Release
description: Publish BEAM release as a Docker image
branding:
icon: 'download-cloud'
color: 'gray-dark'
inputs:
registry:
description: Container Registry
required: true
username:
description: Registry Username
required: true
password:
description: Registry Password
required: true
build-image:
description: Build image
default: erlang:25.1.1.0
build-command:
description: Build command
default: make
build-platforms:
description: Build platforms
default: linux/amd64,linux/arm64
build-tags:
description: Build tags
build-push:
description: Build push image
default: true
image-description:
description: A text-only description limited to 512 characters.
image-licenses:
description: A SPDX license identifier limited to 256 characters.
image-source:
description: The URL of the repository associated with the package.
default: ${{github.repositoryUrl}}
outputs:
imageid:
description: "Image ID"
value: ${{steps.bpa.outputs.imageid}}
digest:
description: "Image digest"
value: ${{steps.bpa.outputs.digest}}
metadata:
description: "Build result metadata"
value: ${{steps.bpa.outputs.metadata}}
tags:
description: "Docker Image Tags"
value: ${{steps.dit.outputs.image_tags}}
image:
description: "Docker Image"
value: ${{steps.dit.outputs.image}}
runs:
using: composite
steps:
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ inputs.registry }}
username: ${{ inputs.username }}
password: ${{ inputs.password }}
- name: checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: set up Docker Buildx
uses: docker/setup-buildx-action@v3
with:
buildkitd-flags: --debug
- name: Copy BEAM Release Action Dockerfile
run: cp -r $GITHUB_ACTION_PATH/Dockerfile .
shell: bash
- name: Copy BEAM Release Action Scripts
run: cp -r $GITHUB_ACTION_PATH/bin beam-docker-release-action
shell: bash
- name: Set DOCKER_IMAGE_TAGS (nonempty inputs.build-tags)
run: |
echo "DOCKER_IMAGE_TAGS=${{inputs.build-tags}}" >> $GITHUB_ENV
if: inputs.build-tags != ''
shell: bash
- name: Set DOCKER_IMAGE_TAGS (empty inputs.build-tags with main)
run:
"echo \"DOCKER_IMAGE_TAGS=\
${{inputs.registry}}/${{github.repository}}:latest\"
>> $GITHUB_ENV"
if: inputs.build-tags == '' && github.ref_name == 'main'
shell: bash
- name: Set DOCKER_IMAGE_TAGS (empty inputs.build-tags)
run:
"echo \"DOCKER_IMAGE_TAGS=\
${{inputs.registry}}/${{github.repository}}:${{github.ref_name}}\"
>> $GITHUB_ENV"
if: inputs.build-tags == '' && github.ref_name != 'main'
shell: bash
- name: use DOCKER_IMAGE_TAGS
id: dit
run: |
echo "image_tags=${DOCKER_IMAGE_TAGS#*:}" >> $GITHUB_OUTPUT
echo "image=${DOCKER_IMAGE_TAGS%:*}" >> $GITHUB_OUTPUT
shell: bash
- name: Build and push
id: bpa
uses: docker/build-push-action@v5
with:
context: .
platforms: ${{inputs.build-platforms}}
build-args: |
BUILD_COMMAND=${{inputs.build-command}}
BUILD_IMAGE=${{inputs.build-image}}
GITHUB_REPOSITORY=${{github.repository}}
IMAGE_DESCRIPTION=${{inputs.image-description}}
IMAGE_LICENSES=${{inputs.image-licenses}}
IMAGE_SOURCE=${{inputs.image-source}}
push: ${{inputs.build-push}}
tags: ${{env.DOCKER_IMAGE_TAGS}}