From e6054bc8ea7d5fca812c8c91c3ed9a2f9bc9ad27 Mon Sep 17 00:00:00 2001 From: Josh Date: Wed, 22 Jul 2026 23:34:26 +0330 Subject: [PATCH] ci: do not fail release when oci chart push fails --- .github/workflows/release-chart.yaml | 23 ++++++----------------- .github/workflows/release.yaml | 22 +++++----------------- 2 files changed, 11 insertions(+), 34 deletions(-) diff --git a/.github/workflows/release-chart.yaml b/.github/workflows/release-chart.yaml index 03acd44..bfad722 100644 --- a/.github/workflows/release-chart.yaml +++ b/.github/workflows/release-chart.yaml @@ -100,12 +100,6 @@ jobs: 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 charts=(.cr-release-packages/*.tgz) if [ ${#charts[@]} -eq 0 ]; then @@ -113,20 +107,15 @@ jobs: exit 0 fi - primary_repo="oci://registry.kloude.ir/kloude/kks-provider-plugin-charts" - fallback_repo="oci://registry.kloude.ir/kloude" + repo="oci://registry.kloude.ir/kloude/kks-provider-plugin-charts" for chart in "${charts[@]}"; do - if helm push --username "${{ secrets.REGISTRY_USER }}" --password "${{ secrets.REGISTRY_PASS }}" "$chart" "$primary_repo"; then - continue + if ! helm push --plain-http \ + --username "${{ secrets.REGISTRY_USER }}" \ + --password "${{ secrets.REGISTRY_PASS }}" \ + "$chart" "$repo"; then + echo "OCI push failed for $chart (registry token realm/protocol issue). Continuing because chart artifact is already published to Gitea release assets." fi - 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 - name: Make OCI chart public diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml index dc6ee05..e84f723 100644 --- a/.github/workflows/release.yaml +++ b/.github/workflows/release.yaml @@ -146,27 +146,15 @@ jobs: if: steps.version.outputs.is_app_release == 'true' run: | set -euo pipefail + repo="oci://registry.kloude.ir/kloude/kks-provider-plugin-charts" - if ! echo "${{ secrets.REGISTRY_PASS }}" | helm registry login registry.kloude.ir \ + if ! helm push --plain-http \ --username "${{ secrets.REGISTRY_USER }}" \ - --password-stdin; then - echo "Registry login failed, retrying during push" + --password "${{ secrets.REGISTRY_PASS }}" \ + "$CHART_PACKAGE" "$repo"; then + echo "OCI push failed (registry token realm/protocol issue). Continuing because chart artifact is already published to Gitea release assets." 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 if: steps.version.outputs.is_app_release == 'true' env: