|
18 | 18 | push: |
19 | 19 | branches: |
20 | 20 | - chore/ci/e2e-matrix-skeleton |
| 21 | + - ci-e2e-nested-sds |
21 | 22 | pull_request: |
22 | 23 | types: [opened, reopened, synchronize, labeled, unlabeled] |
23 | 24 | branches: |
@@ -180,47 +181,39 @@ jobs: |
180 | 181 | RUN_DIR="${{ env.TMP_ROOT }}/runs/${{ env.RUN_ID }}" |
181 | 182 | echo "VALUES_TEMPLATE_FILE=${{ env.TMP_ROOT }}/runs/${{ env.RUN_ID }}/values.yaml" >> $GITHUB_ENV |
182 | 183 |
|
183 | | - - name: Configure registry auth (REGISTRY_DOCKER_CFG) |
| 184 | + - name: Configure registry auth (DEV_REGISTRY_DOCKER_CFG) |
184 | 185 | run: | |
185 | | - prod_user="${{ secrets.PROD_READ_REGISTRY_USER }}" |
186 | | - prod_pass="${{ secrets.PROD_READ_REGISTRY_PASSWORD }}" |
187 | | - dev_user="${{ secrets.BOOTSTRAP_DEV_REGISTRY_LOGIN }}" |
188 | | - dev_pass="${{ secrets.BOOTSTRAP_DEV_REGISTRY_PASSWORD }}" |
189 | | - echo "::add-mask::$prod_user" |
190 | | - echo "::add-mask::$prod_pass" |
191 | | - echo "::add-mask::$dev_user" |
192 | | - echo "::add-mask::$dev_pass" |
193 | | - prod_auth_b64=$(printf '%s:%s' "$prod_user" "$prod_pass" | base64 | tr -d '\n') |
194 | | - dev_auth_b64=$(printf '%s:%s' "$dev_user" "$dev_pass" | base64 | tr -d '\n') |
195 | | - docker_cfg=$(printf '{"auths":{"registry.deckhouse.io":{"auth":"%s"},"dev-registry.deckhouse.io":{"auth":"%s"}}}' "$prod_auth_b64" "$dev_auth_b64") |
196 | | - docker_cfg_b64=$(printf '%s' "$docker_cfg" | base64 | tr -d '\n') |
197 | | - echo "::add-mask::$docker_cfg_b64" |
198 | | - { |
199 | | - echo "REGISTRY_DOCKER_CFG=$docker_cfg_b64" |
200 | | - echo "DECKHOUSE_REGISTRY_USER=$prod_user" |
201 | | - echo "DECKHOUSE_REGISTRY_PASSWORD=$prod_pass" |
202 | | - } >> "$GITHUB_ENV" |
| 186 | + dev_cfg_b64='${{ secrets.DEV_REGISTRY_DOCKER_CFG }}' |
| 187 | + if [ -n "$dev_cfg_b64" ]; then |
| 188 | + echo "::add-mask::$dev_cfg_b64" |
| 189 | + echo "REGISTRY_DOCKER_CFG=$dev_cfg_b64" >> "$GITHUB_ENV" |
| 190 | + else |
| 191 | + echo "[WARN] DEV_REGISTRY_DOCKER_CFG is empty; proceeding without registry cfg" |
| 192 | + fi |
203 | 193 |
|
204 | 194 | - name: Inject REGISTRY_DOCKER_CFG into values.yaml |
| 195 | + if: ${{ env.REGISTRY_DOCKER_CFG != '' }} |
205 | 196 | working-directory: ci/dvp-e2e |
206 | 197 | run: | |
207 | 198 | chmod +x scripts/inject_registry_cfg.sh |
208 | 199 | VALS="${{ env.TMP_ROOT }}/runs/${{ env.RUN_ID }}/values.yaml" |
209 | 200 | REGISTRY_DOCKER_CFG="${REGISTRY_DOCKER_CFG}" scripts/inject_registry_cfg.sh -f "$VALS" -v "$REGISTRY_DOCKER_CFG" |
210 | 201 |
|
211 | | - - name: Docker login to Deckhouse registry |
212 | | - uses: docker/login-action@v3 |
213 | | - with: |
214 | | - registry: registry.deckhouse.io |
215 | | - username: ${{ env.DECKHOUSE_REGISTRY_USER }} |
216 | | - password: ${{ env.DECKHOUSE_REGISTRY_PASSWORD }} |
217 | | - |
218 | | - - name: Docker login to dev-registry |
219 | | - uses: docker/login-action@v3 |
220 | | - with: |
221 | | - registry: ${{ vars.DEV_REGISTRY }} |
222 | | - username: ${{ secrets.BOOTSTRAP_DEV_REGISTRY_LOGIN }} |
223 | | - password: ${{ secrets.BOOTSTRAP_DEV_REGISTRY_PASSWORD }} |
| 202 | + - name: Docker login from DEV_REGISTRY_DOCKER_CFG (optional) |
| 203 | + if: ${{ secrets.DEV_REGISTRY_DOCKER_CFG != '' }} |
| 204 | + run: | |
| 205 | + set -euo pipefail |
| 206 | + cfg=$(printf '%s' '${{ secrets.DEV_REGISTRY_DOCKER_CFG }}' | base64 -d) |
| 207 | + reg_list=$(printf '%s' "$cfg" | jq -r '.auths | keys[]') |
| 208 | + for reg in $reg_list; do |
| 209 | + auth=$(printf '%s' "$cfg" | jq -r --arg r "$reg" '.auths[$r].auth // ""') |
| 210 | + [ -z "$auth" ] && continue |
| 211 | + creds=$(printf '%s' "$auth" | base64 -d) |
| 212 | + user=${creds%%:*} |
| 213 | + pass=${creds#*:} |
| 214 | + echo "Logging into $reg" |
| 215 | + echo "$pass" | docker login "$reg" -u "$user" --password-stdin |
| 216 | + done |
224 | 217 |
|
225 | 218 | - name: Configure storage profile |
226 | 219 | working-directory: ci/dvp-e2e |
|
0 commit comments