@@ -52,10 +52,19 @@ jobs:
52
52
# build performance and the ability to copy extended file attributes
53
53
# (e.g., for executable capabilities) across build phases.
54
54
DOCKER_BUILDKIT : 1
55
- # DOCKER_REPO/secrets.DOCKERHUB_REPO needs to be 'index.docker.io/<user>/<repo>'
56
- DOCKER_REPO : ${{ secrets.DOCKERHUB_REPO }}
57
55
SOURCE_COMMIT : ${{ github.sha }}
58
56
SOURCE_REPOSITORY_URL : " https://github.com/${{ github.repository }}"
57
+ # The *_REPO variables need to be configured as repository variables
58
+ # Append `/settings/variables/actions` to your repo url
59
+ # DOCKERHUB_REPO needs to be 'index.docker.io/<user>/<repo>'
60
+ # Check for Docker hub credentials in secrets
61
+ HAVE_DOCKERHUB_LOGIN : ${{ vars.DOCKERHUB_REPO != '' && secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' }}
62
+ # GHCR_REPO needs to be 'ghcr.io/<user>/<repo>'
63
+ # Check for Github credentials in secrets
64
+ HAVE_GHCR_LOGIN : ${{ vars.GHCR_REPO != '' && github.repository_owner != '' && secrets.GITHUB_TOKEN != '' }}
65
+ # QUAY_REPO needs to be 'quay.io/<user>/<repo>'
66
+ # Check for Quay.io credentials in secrets
67
+ HAVE_QUAY_LOGIN : ${{ vars.QUAY_REPO != '' && secrets.QUAY_USERNAME != '' && secrets.QUAY_TOKEN != '' }}
59
68
if : ${{ needs.skip_check.outputs.should_skip != 'true' && github.repository == 'dani-garcia/vaultwarden' }}
60
69
strategy :
61
70
matrix :
@@ -64,17 +73,10 @@ jobs:
64
73
steps :
65
74
# Checkout the repo
66
75
- name : Checkout
67
- uses : actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3.3 .0
76
+ uses : actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3.4 .0
68
77
with :
69
78
fetch-depth : 0
70
79
71
- # Login to Docker Hub
72
- - name : Login to Docker Hub
73
- uses : docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a # v2.1.0
74
- with :
75
- username : ${{ secrets.DOCKERHUB_USERNAME }}
76
- password : ${{ secrets.DOCKERHUB_TOKEN }}
77
-
78
80
# Determine Docker Tag
79
81
- name : Init Variables
80
82
id : vars
@@ -88,34 +90,146 @@ jobs:
88
90
fi
89
91
# End Determine Docker Tag
90
92
91
- - name : Build Debian based images
93
+ # Login to Docker Hub
94
+ - name : Login to Docker Hub
95
+ uses : docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a # v2.1.0
96
+ with :
97
+ username : ${{ secrets.DOCKERHUB_USERNAME }}
98
+ password : ${{ secrets.DOCKERHUB_TOKEN }}
99
+ if : ${{ env.HAVE_DOCKERHUB_LOGIN == 'true' }}
100
+
101
+ # Login to GitHub Container Registry
102
+ - name : Login to GitHub Container Registry
103
+ uses : docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a # v2.1.0
104
+ with :
105
+ registry : ghcr.io
106
+ username : ${{ github.repository_owner }}
107
+ password : ${{ secrets.GITHUB_TOKEN }}
108
+ if : ${{ env.HAVE_GHCR_LOGIN == 'true' }}
109
+
110
+ # Login to Quay.io
111
+ - name : Login to Quay.io
112
+ uses : docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a # v2.1.0
113
+ with :
114
+ registry : quay.io
115
+ username : ${{ secrets.QUAY_USERNAME }}
116
+ password : ${{ secrets.QUAY_TOKEN }}
117
+ if : ${{ env.HAVE_QUAY_LOGIN == 'true' }}
118
+
119
+ # Debian
120
+
121
+ # Docker Hub
122
+ - name : Build Debian based images (docker.io)
123
+ shell : bash
124
+ env :
125
+ DOCKER_REPO : " ${{ vars.DOCKERHUB_REPO }}"
126
+ DOCKER_TAG : " ${{steps.vars.outputs.DOCKER_TAG}}"
127
+ run : |
128
+ ./hooks/build
129
+ if : ${{ matrix.base_image == 'debian' && env.HAVE_DOCKERHUB_LOGIN == 'true' }}
130
+
131
+ - name : Push Debian based images (docker.io)
132
+ shell : bash
133
+ env :
134
+ DOCKER_REPO : " ${{ vars.DOCKERHUB_REPO }}"
135
+ DOCKER_TAG : " ${{steps.vars.outputs.DOCKER_TAG}}"
136
+ run : |
137
+ ./hooks/push
138
+ if : ${{ matrix.base_image == 'debian' && env.HAVE_DOCKERHUB_LOGIN == 'true' }}
139
+
140
+ # GitHub Container Registry
141
+ - name : Build Debian based images (ghcr.io)
142
+ shell : bash
143
+ env :
144
+ DOCKER_REPO : " ${{ vars.GHCR_REPO }}"
145
+ DOCKER_TAG : " ${{steps.vars.outputs.DOCKER_TAG}}"
146
+ run : |
147
+ ./hooks/build
148
+ if : ${{ matrix.base_image == 'debian' && env.HAVE_GHCR_LOGIN == 'true' }}
149
+
150
+ - name : Push Debian based images (ghcr.io)
151
+ shell : bash
152
+ env :
153
+ DOCKER_REPO : " ${{ vars.GHCR_REPO }}"
154
+ DOCKER_TAG : " ${{steps.vars.outputs.DOCKER_TAG}}"
155
+ run : |
156
+ ./hooks/push
157
+ if : ${{ matrix.base_image == 'debian' && env.HAVE_GHCR_LOGIN == 'true' }}
158
+
159
+ # Quay.io
160
+ - name : Build Debian based images (quay.io)
92
161
shell : bash
93
162
env :
163
+ DOCKER_REPO : " ${{ vars.QUAY_REPO }}"
94
164
DOCKER_TAG : " ${{steps.vars.outputs.DOCKER_TAG}}"
95
165
run : |
96
166
./hooks/build
97
- if : ${{ matrix.base_image == 'debian' }}
167
+ if : ${{ matrix.base_image == 'debian' && env.HAVE_QUAY_LOGIN == 'true' }}
98
168
99
- - name : Push Debian based images
169
+ - name : Push Debian based images (quay.io)
100
170
shell : bash
101
171
env :
172
+ DOCKER_REPO : " ${{ vars.QUAY_REPO }}"
102
173
DOCKER_TAG : " ${{steps.vars.outputs.DOCKER_TAG}}"
103
174
run : |
104
175
./hooks/push
105
- if : ${{ matrix.base_image == 'debian' }}
176
+ if : ${{ matrix.base_image == 'debian' && env.HAVE_QUAY_LOGIN == 'true' }}
177
+
178
+ # Alpine
179
+
180
+ # Docker Hub
181
+ - name : Build Alpine based images (docker.io)
182
+ shell : bash
183
+ env :
184
+ DOCKER_REPO : " ${{ vars.DOCKERHUB_REPO }}"
185
+ DOCKER_TAG : " ${{steps.vars.outputs.DOCKER_TAG}}-alpine"
186
+ run : |
187
+ ./hooks/build
188
+ if : ${{ matrix.base_image == 'alpine' && env.HAVE_DOCKERHUB_LOGIN == 'true' }}
189
+
190
+ - name : Push Alpine based images (docker.io)
191
+ shell : bash
192
+ env :
193
+ DOCKER_REPO : " ${{ vars.DOCKERHUB_REPO }}"
194
+ DOCKER_TAG : " ${{steps.vars.outputs.DOCKER_TAG}}-alpine"
195
+ run : |
196
+ ./hooks/push
197
+ if : ${{ matrix.base_image == 'alpine' && env.HAVE_DOCKERHUB_LOGIN == 'true' }}
198
+
199
+ # GitHub Container Registry
200
+ - name : Build Alpine based images (ghcr.io)
201
+ shell : bash
202
+ env :
203
+ DOCKER_REPO : " ${{ vars.GHCR_REPO }}"
204
+ DOCKER_TAG : " ${{steps.vars.outputs.DOCKER_TAG}}-alpine"
205
+ run : |
206
+ ./hooks/build
207
+ if : ${{ matrix.base_image == 'alpine' && env.HAVE_GHCR_LOGIN == 'true' }}
208
+
209
+ - name : Push Alpine based images (ghcr.io)
210
+ shell : bash
211
+ env :
212
+ DOCKER_REPO : " ${{ vars.GHCR_REPO }}"
213
+ DOCKER_TAG : " ${{steps.vars.outputs.DOCKER_TAG}}-alpine"
214
+ run : |
215
+ ./hooks/push
216
+ if : ${{ matrix.base_image == 'alpine' && env.HAVE_GHCR_LOGIN == 'true' }}
106
217
107
- - name : Build Alpine based images
218
+ # Quay.io
219
+ - name : Build Alpine based images (quay.io)
108
220
shell : bash
109
221
env :
222
+ DOCKER_REPO : " ${{ vars.QUAY_REPO }}"
110
223
DOCKER_TAG : " ${{steps.vars.outputs.DOCKER_TAG}}-alpine"
111
224
run : |
112
225
./hooks/build
113
- if : ${{ matrix.base_image == 'alpine' }}
226
+ if : ${{ matrix.base_image == 'alpine' && env.HAVE_QUAY_LOGIN == 'true' }}
114
227
115
- - name : Push Alpine based images
228
+ - name : Push Alpine based images (quay.io)
116
229
shell : bash
117
230
env :
231
+ DOCKER_REPO : " ${{ vars.QUAY_REPO }}"
118
232
DOCKER_TAG : " ${{steps.vars.outputs.DOCKER_TAG}}-alpine"
119
233
run : |
120
234
./hooks/push
121
- if : ${{ matrix.base_image == 'alpine' }}
235
+ if : ${{ matrix.base_image == 'alpine' && env.HAVE_QUAY_LOGIN == 'true' }}
0 commit comments