ci: add resilient helm oci push fallbacks
This commit is contained in:
@@ -98,17 +98,35 @@ jobs:
|
|||||||
|
|
||||||
- name: Push chart to OCI registry
|
- name: Push chart to OCI registry
|
||||||
run: |
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
if ! echo "${{ secrets.REGISTRY_PASS }}" | helm registry login registry.kloude.ir \
|
||||||
|
--username "${{ secrets.REGISTRY_USER }}" \
|
||||||
|
--password-stdin; then
|
||||||
|
echo "Registry login failed, retrying during push"
|
||||||
|
fi
|
||||||
|
|
||||||
shopt -s nullglob
|
shopt -s nullglob
|
||||||
charts=(.cr-release-packages/*.tgz)
|
charts=(.cr-release-packages/*.tgz)
|
||||||
if [ ${#charts[@]} -eq 0 ]; then
|
if [ ${#charts[@]} -eq 0 ]; then
|
||||||
echo "No packaged charts to push"
|
echo "No packaged charts to push"
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
primary_repo="oci://registry.kloude.ir/kloude/kks-provider-plugin-charts"
|
||||||
|
fallback_repo="oci://registry.kloude.ir/kloude"
|
||||||
|
|
||||||
for chart in "${charts[@]}"; do
|
for chart in "${charts[@]}"; do
|
||||||
helm push --plain-http \
|
if helm push --username "${{ secrets.REGISTRY_USER }}" --password "${{ secrets.REGISTRY_PASS }}" "$chart" "$primary_repo"; then
|
||||||
--username "${{ secrets.REGISTRY_USER }}" \
|
continue
|
||||||
--password "${{ secrets.REGISTRY_PASS }}" \
|
fi
|
||||||
"$chart" "oci://registry.kloude.ir/kloude/kks-provider-plugin-charts"
|
if helm push --plain-http --username "${{ secrets.REGISTRY_USER }}" --password "${{ secrets.REGISTRY_PASS }}" "$chart" "$primary_repo"; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
if helm push --username "${{ secrets.REGISTRY_USER }}" --password "${{ secrets.REGISTRY_PASS }}" "$chart" "$fallback_repo"; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
helm push --plain-http --username "${{ secrets.REGISTRY_USER }}" --password "${{ secrets.REGISTRY_PASS }}" "$chart" "$fallback_repo"
|
||||||
done
|
done
|
||||||
|
|
||||||
- name: Make OCI chart public
|
- name: Make OCI chart public
|
||||||
|
|||||||
@@ -145,10 +145,27 @@ jobs:
|
|||||||
- name: Push chart to OCI registry
|
- name: Push chart to OCI registry
|
||||||
if: steps.version.outputs.is_app_release == 'true'
|
if: steps.version.outputs.is_app_release == 'true'
|
||||||
run: |
|
run: |
|
||||||
helm push --plain-http \
|
set -euo pipefail
|
||||||
|
|
||||||
|
if ! echo "${{ secrets.REGISTRY_PASS }}" | helm registry login registry.kloude.ir \
|
||||||
--username "${{ secrets.REGISTRY_USER }}" \
|
--username "${{ secrets.REGISTRY_USER }}" \
|
||||||
--password "${{ secrets.REGISTRY_PASS }}" \
|
--password-stdin; then
|
||||||
"$CHART_PACKAGE" "oci://registry.kloude.ir/kloude/kks-provider-plugin-charts"
|
echo "Registry login failed, retrying during push"
|
||||||
|
fi
|
||||||
|
|
||||||
|
primary_repo="oci://registry.kloude.ir/kloude/kks-provider-plugin-charts"
|
||||||
|
fallback_repo="oci://registry.kloude.ir/kloude"
|
||||||
|
|
||||||
|
if helm push --username "${{ secrets.REGISTRY_USER }}" --password "${{ secrets.REGISTRY_PASS }}" "$CHART_PACKAGE" "$primary_repo"; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
if helm push --plain-http --username "${{ secrets.REGISTRY_USER }}" --password "${{ secrets.REGISTRY_PASS }}" "$CHART_PACKAGE" "$primary_repo"; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
if helm push --username "${{ secrets.REGISTRY_USER }}" --password "${{ secrets.REGISTRY_PASS }}" "$CHART_PACKAGE" "$fallback_repo"; then
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
helm push --plain-http --username "${{ secrets.REGISTRY_USER }}" --password "${{ secrets.REGISTRY_PASS }}" "$CHART_PACKAGE" "$fallback_repo"
|
||||||
|
|
||||||
- name: Make OCI chart public
|
- name: Make OCI chart public
|
||||||
if: steps.version.outputs.is_app_release == 'true'
|
if: steps.version.outputs.is_app_release == 'true'
|
||||||
|
|||||||
Reference in New Issue
Block a user