@@ -3,10 +3,16 @@ name: Reusable Docker build and push workflow
3
3
on :
4
4
workflow_call :
5
5
inputs :
6
- registry :
6
+ old_registry :
7
7
required : true
8
8
type : string
9
- username :
9
+ old_username :
10
+ required : true
11
+ type : string
12
+ new_registry :
13
+ required : true
14
+ type : string
15
+ new_username :
10
16
required : true
11
17
type : string
12
18
app_name :
@@ -28,24 +34,33 @@ jobs:
28
34
docker-build :
29
35
runs-on : ubuntu-latest
30
36
steps :
31
-
32
37
- name : Checkout
33
38
uses : actions/checkout@v4
34
39
35
- - name : Docker Login
40
+ # Login for 'main' branch to both registries
41
+ - name : Docker Login to fruoccopublic (Main)
36
42
if : ${{ inputs.push == true && github.ref_name == 'main' }}
37
43
uses : docker/login-action@v3
38
44
with :
39
- registry : ${{ inputs.registry }}
40
- username : ${{ inputs.username }}
45
+ registry : ${{ inputs.old_registry }}
46
+ username : ${{ inputs.old_username }}
41
47
password : ${{ secrets.DOCKER_PASSWORD }}
42
48
43
- - name : Dev Docker Login
49
+ - name : Docker Login to cwydcontainerreg (Main)
50
+ if : ${{ inputs.push == true && github.ref_name == 'main' }}
51
+ uses : docker/login-action@v3
52
+ with :
53
+ registry : ${{ inputs.new_registry }}
54
+ username : ${{ inputs.new_username }}
55
+ password : ${{ secrets.DEV_DOCKER_PASSWORD }}
56
+
57
+ # Login for 'dev' and 'demo' branches to cwydcontainerreg only
58
+ - name : Docker Login to cwydcontainerreg (Dev/Demo)
44
59
if : ${{ inputs.push == true && (github.ref_name == 'dev' || github.ref_name == 'demo') }}
45
60
uses : docker/login-action@v3
46
61
with :
47
- registry : ${{ inputs.registry }}
48
- username : ${{ inputs.username }}
62
+ registry : ${{ inputs.new_registry }}
63
+ username : ${{ inputs.new_username }}
49
64
password : ${{ secrets.DEV_DOCKER_PASSWORD }}
50
65
51
66
- name : Set up Docker Buildx
@@ -55,13 +70,26 @@ jobs:
55
70
id : date
56
71
run : echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
57
72
58
- - name : Build Docker Image and optionally push
73
+ - name : Build Docker Image and optionally push (Old Registry)
74
+ if : ${{ github.ref_name == 'main' }}
75
+ uses : docker/build-push-action@v6
76
+ with :
77
+ context : .
78
+ file : ${{ inputs.dockerfile }}
79
+ push : ${{ inputs.push }}
80
+ cache-from : type=registry,ref=${{ inputs.old_registry }}/${{ inputs.app_name }}:${{ github.ref_name == 'main' && 'latest' || github.head_ref || github.ref_name }}
81
+ tags : |
82
+ ${{ inputs.old_registry }}/${{ inputs.app_name }}:${{ github.ref_name == 'main' && 'latest' || github.head_ref || 'default' }}
83
+ ${{ inputs.old_registry }}/${{ inputs.app_name }}:${{ steps.date.outputs.date }}_${{ github.run_number }}
84
+
85
+ - name : Build Docker Image and optionally push (New Registry)
86
+ if : ${{ github.ref_name == 'main' || github.ref_name == 'dev' || github.ref_name == 'demo'|| github.ref_name == 'dependabotchanges' }}
59
87
uses : docker/build-push-action@v6
60
88
with :
61
89
context : .
62
90
file : ${{ inputs.dockerfile }}
63
91
push : ${{ inputs.push }}
64
- cache-from : type=registry,ref=${{ inputs.registry }}/${{ inputs.app_name}}:${{ github.ref_name == 'main' && 'latest' || github.ref_name == 'dev' && 'dev' || github.ref_name == 'demo' && 'demo' || 'latest' }}
92
+ cache-from : type=registry,ref=${{ inputs.new_registry }}/${{ inputs.app_name }}:${{ github.ref_name == 'main' && 'latest' || github.ref_name == 'dev' && 'dev' || github.ref_name == 'demo' && 'demo'|| github.ref_name == 'dependabotchanges' && 'dependabotchanges' || github.head_ref || github.ref_name }}
65
93
tags : |
66
- ${{ inputs.registry }}/${{ inputs.app_name}}:${{ github.ref_name == 'main' && 'latest' || github.ref_name == 'dev' && 'dev' || github.ref_name == 'demo' && 'demo' || 'latest ' }}
67
- ${{ inputs.registry }}/${{ inputs.app_name}}:${{ steps.date.outputs.date }}_${{ github.run_number }}
94
+ ${{ inputs.new_registry }}/${{ inputs.app_name }}:${{ github.ref_name == 'main' && 'latest' || github.ref_name == 'dev' && 'dev' || github.ref_name == 'demo' && 'demo'|| github.ref_name == 'dependabotchanges' && 'dependabotchanges' || github.head_ref || 'default ' }}
95
+ ${{ inputs.new_registry }}/${{ inputs.app_name }}:${{ steps.date.outputs.date }}_${{ github.run_number }}
0 commit comments