1
1
name : Build and Publish Docker Image
2
-
3
2
on :
4
3
workflow_dispatch :
5
4
inputs :
6
- release_tag :
7
- description : " Release version to build"
5
+ container_version :
6
+ description : " Container version to build (e.g., 1.2.3 or 1.2.3-beta)"
7
+ required : true
8
+ photon_version :
9
+ description : " Photon version"
8
10
required : true
9
- revision :
10
- description : " Revision number (optional)"
11
- required : false
11
+ branch :
12
+ description : " Branch to build from"
13
+ required : true
14
+ default : " main"
15
+ type : choice
16
+ options :
17
+ - main
18
+ - dev
12
19
13
20
jobs :
14
21
build-and-push :
15
22
runs-on : ubuntu-latest
16
23
steps :
17
24
- name : Checkout Repository
18
25
uses : actions/checkout@v4
26
+ with :
27
+ ref : ${{ github.event.inputs.branch }}
19
28
20
29
- name : Set up Docker Buildx
21
30
uses : docker/setup-buildx-action@v3
@@ -33,31 +42,47 @@ jobs:
33
42
username : ${{ github.repository_owner }}
34
43
password : ${{ secrets.GITHUB_TOKEN }}
35
44
36
- - name : Determine tag
37
- id : determine_tag
45
+ - name : Determine version and tags
46
+ id : determine_tags
38
47
run : |
39
- revision="${{ github.event.inputs.revision }}"
40
- if [ "$revision" ]; then
41
- echo "RELEASE_TAG=${{ github.event.inputs.release_tag }}-rev.$revision" >> "$GITHUB_ENV"
48
+ CONTAINER_VERSION="${{ github.event.inputs.container_version }}"
49
+ PHOTON_VERSION="${{ github.event.inputs.photon_version }}"
50
+
51
+ CONTAINER_VERSION="${CONTAINER_VERSION#v}"
52
+
53
+ if [[ "$CONTAINER_VERSION" == *"-beta"* ]] || [ "${{ github.event.inputs.branch }}" == "dev" ]; then
54
+ IS_PRERELEASE="true"
55
+ else
56
+ IS_PRERELEASE="false"
57
+ fi
58
+
59
+ echo "CONTAINER_VERSION=$CONTAINER_VERSION" >> "$GITHUB_ENV"
60
+ echo "PHOTON_VERSION=$PHOTON_VERSION" >> "$GITHUB_ENV"
61
+ echo "IS_PRERELEASE=$IS_PRERELEASE" >> "$GITHUB_ENV"
62
+
63
+ TAGS="rtuszik/photon-docker:$CONTAINER_VERSION"
64
+ TAGS="$TAGS,ghcr.io/rtuszik/photon-docker:$CONTAINER_VERSION"
65
+
66
+ if [ "$IS_PRERELEASE" == "true" ]; then
67
+ TAGS="$TAGS,rtuszik/photon-docker:beta"
68
+ TAGS="$TAGS,ghcr.io/rtuszik/photon-docker:beta"
42
69
else
43
- echo "RELEASE_TAG=${{ github.event.inputs.release_tag }}" >> "$GITHUB_ENV"
70
+ TAGS="$TAGS,rtuszik/photon-docker:latest"
71
+ TAGS="$TAGS,ghcr.io/rtuszik/photon-docker:latest"
44
72
fi
45
- echo "PHOTON_VERSION=${{ github.event.inputs.release_tag }}" >> "$GITHUB_ENV"
73
+
74
+ echo "DOCKER_TAGS=$TAGS" >> "$GITHUB_ENV"
75
+
76
+ echo "Container Version: $CONTAINER_VERSION"
77
+ echo "Photon Version: $PHOTON_VERSION"
78
+ echo "Is Prerelease: $IS_PRERELEASE"
79
+ echo "Tags: $TAGS"
46
80
47
81
- name : Build and push Docker image
48
82
uses : docker/build-push-action@v6
49
83
with :
50
84
build-args : |
51
85
PHOTON_VERSION=${{ env.PHOTON_VERSION }}
52
86
push : true
53
- tags : |
54
- rtuszik/photon-docker:${{ env.RELEASE_TAG }}
55
- rtuszik/photon-docker:latest
56
- ghcr.io/rtuszik/photon-docker:${{ env.RELEASE_TAG }}
57
- ghcr.io/rtuszik/photon-docker:latest
87
+ tags : ${{ env.DOCKER_TAGS }}
58
88
platforms : linux/amd64,linux/arm64
59
-
60
- - name : Store the latest release
61
- run : echo ${{ env.RELEASE_TAG }} > .last_release
62
- if : success()
63
- continue-on-error : false
0 commit comments