From 23861b09baedfc7d8cc303e459f340659809ef75 Mon Sep 17 00:00:00 2001 From: Pranav Patil Date: Thu, 13 Aug 2026 12:48:53 +0500 Subject: [PATCH 1/6] improve helm-charts-release workflow --- .github/workflows/helm-charts-release.yaml | 189 ++++++++++++++++-- .github/workflows/publish.yaml | 4 +- .qubership/docker-build-config.cfg | 35 ++++ .qubership/helm-charts-release-config.yaml | 9 + charts/site-manager/templates/deployment.yaml | 6 +- charts/site-manager/values.schema.json | 16 +- charts/site-manager/values.yaml | 6 +- documentation/public/installation.md | 8 +- 8 files changed, 234 insertions(+), 39 deletions(-) create mode 100644 .qubership/docker-build-config.cfg create mode 100644 .qubership/helm-charts-release-config.yaml diff --git a/.github/workflows/helm-charts-release.yaml b/.github/workflows/helm-charts-release.yaml index efd876af..c9b958d8 100644 --- a/.github/workflows/helm-charts-release.yaml +++ b/.github/workflows/helm-charts-release.yaml @@ -1,15 +1,21 @@ +--- + name: Helm Charts Release on: workflow_dispatch: inputs: release: - description: "Release version (e.g. v0.35.2)" + description: "Release version (e.g. 0.35.2, or test- for test builds)" required: true type: string + publish_release: + description: "Publish a real GitHub Release for this run (ignored/forced false unless run from main)" + required: false + type: boolean + default: true permissions: - contents: write - packages: write + contents: read run-name: ${{ github.repository }} Release ${{ inputs.release }} @@ -18,22 +24,168 @@ concurrency: cancel-in-progress: true jobs: - publish-artifacts: - uses: ./.github/workflows/publish.yaml - with: - tag: ${{ inputs.release }} - secrets: inherit + check-tag: + runs-on: ubuntu-latest + steps: + - name: Check if tag exists + id: check_tag + uses: netcracker/qubership-workflow-hub/actions/tag-action@8d542a426ce561c7dce745f6b9cee068d1d7e101 # v2.0.10 + with: + tag-name: '${{ inputs.release }}' + ref: ${{ github.ref }} + create-tag: false + check-tag: true + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + load-docker-build-components: + runs-on: ubuntu-latest + outputs: + component: ${{ steps.load_component.outputs.components }} + platforms: ${{ steps.load_component.outputs.platforms }} + env: + CONFIG_FILE: .qubership/docker-build-config.cfg + steps: + - name: Checkout code + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + with: + persist-credentials: false + + - name: Load Docker Configuration + id: load_component + run: | + verify=$(cat "$GITHUB_WORKSPACE/${CONFIG_FILE}" | jq ' + def verify_structure: + .components as $components + | .platforms as $platforms + | ($components | type == "array") + and (all($components[]; has("name") and has("file") and has("context"))) + and ($platforms | type == "string"); + verify_structure + | if . then true else false end + ') + if [ ${verify} == 'true' ]; then + echo "$GITHUB_WORKSPACE/${CONFIG_FILE} file is valid" + components=$(jq -c ".components" "$GITHUB_WORKSPACE/${CONFIG_FILE}") + platforms=$(jq -c ".platforms" "$GITHUB_WORKSPACE/${CONFIG_FILE}") + else + echo "$GITHUB_WORKSPACE/${CONFIG_FILE} file is invalid" + echo "$GITHUB_WORKSPACE/${CONFIG_FILE} file is invalid" >> $GITHUB_STEP_SUMMARY + exit 1 + fi + echo "components=${components}" >> $GITHUB_OUTPUT + echo "platforms=${platforms}" >> $GITHUB_OUTPUT + + docker-check-build: + needs: [load-docker-build-components, check-tag] + name: ${{ matrix.component.name }} dry run + runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + component: ${{ fromJson(needs.load-docker-build-components.outputs.component) }} + steps: + - name: Get version for current component + id: get-version + run: | + echo "IMAGE=${{ matrix.component.name }}" >> $GITHUB_ENV + - name: Docker build + uses: netcracker/qubership-workflow-hub/actions/docker-action@8d542a426ce561c7dce745f6b9cee068d1d7e101 # v2.0.10 + with: + ref: ${{ github.ref }} + download-artifact: false + dry-run: true + component: ${{ toJson(matrix.component) }} + platforms: ${{ needs.load-docker-build-components.outputs.platforms }} + tags: "${{ env.IMAGE_VERSION }}" + env: + GITHUB_TOKEN: ${{ github.token }} + + chart-release: + permissions: + contents: write + packages: write + needs: [check-tag, load-docker-build-components, docker-check-build] + runs-on: ubuntu-latest + outputs: + images-versions: ${{ steps.update-versions.outputs.images-versions }} + charts-artifact: ${{ steps.update-versions.outputs.released-chart-atrifact }} + steps: + - name: Checkout code + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + with: + fetch-depth: 0 + persist-credentials: true + + - name: "Chart release" + id: update-versions + uses: netcracker/qubership-workflow-hub/actions/charts-values-update-action@6b356d28e46b2d4683cccb1d91f92643d7f0c513 # v.2.0.11 + with: + release-version: ${{ inputs.release }} + config-file: .qubership/helm-charts-release-config.yaml + default-tag: ${{ inputs.release }} + package-charts: true + publish-charts: true + + - name: "Debug" + env: + IMAGES_VERSIONS: "${{ steps.update-versions.outputs.images-versions }}" + run: | + echo "Images versions: ${IMAGES_VERSIONS}" + ls -laR + + docker-build: + name: ${{ matrix.component.name }} + permissions: + contents: write + packages: write + needs: [chart-release, load-docker-build-components] + runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + component: ${{ fromJson(needs.load-docker-build-components.outputs.component) }} + steps: + - name: Get version for current component + id: get-version + env: + IMAGE_VER: "${{ fromJson(needs.chart-release.outputs.images-versions)[matrix.component.name] || inputs.release }}" + run: | + echo "IMAGE_VERSION=${IMAGE_VER}" >> $GITHUB_ENV + + - name: Docker build + uses: netcracker/qubership-workflow-hub/actions/docker-action@8d542a426ce561c7dce745f6b9cee068d1d7e101 # v2.0.10 + with: + ref: release-${{ inputs.release }} + download-artifact: false + dry-run: false + component: ${{ toJson(matrix.component) }} + platforms: ${{ needs.load-docker-build-components.outputs.platforms }} + tags: "${{ env.IMAGE_VERSION }},latest" + env: + GITHUB_TOKEN: ${{ github.token }} github-release: - needs: [publish-artifacts] + # Real releases are only ever cut from main — force-skip on any other branch + # regardless of the publish_release input, so a test dispatch can't accidentally + # publish a real GitHub Release. + if: ${{ inputs.publish_release && github.ref_name == 'main' }} + permissions: + contents: write + packages: write + pull-requests: write + needs: [chart-release, docker-build] + continue-on-error: false runs-on: ubuntu-latest steps: - - name: Checkout - uses: actions/checkout@v4 + - name: "Checkout code" + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 with: fetch-depth: 0 + ref: release-${{ inputs.release }} + persist-credentials: true - - name: Create GitHub release + - name: "Release-drafter" uses: netcracker/release-drafter@86f4276a3894b5af70480e826c32fe3648ac6a70 # v1.0.0 with: config-name: release-drafter-config.yml @@ -41,5 +193,18 @@ jobs: name: ${{ inputs.release }} tag: ${{ inputs.release }} version: ${{ inputs.release }} + commitish: release-${{ inputs.release }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: "Download released charts" + uses: actions/download-artifact@37930b1c2abaa49bbe596cd826c3c89aef350131 # v7.0.0 + with: + artifact-ids: ${{ needs.chart-release.outputs.charts-artifact }} + - name: "Upload Assets" + uses: netcracker/qubership-workflow-hub/actions/assets-action@8d542a426ce561c7dce745f6b9cee068d1d7e101 # v2.0.10 + with: + tag: ${{ inputs.release }} + item-path: "./*.tgz" env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml index 33c82f81..799c8e01 100644 --- a/.github/workflows/publish.yaml +++ b/.github/workflows/publish.yaml @@ -1,7 +1,5 @@ name: Publish Artifacts on: - release: - types: [created] push: branches: - 'main' @@ -18,7 +16,7 @@ on: required: true type: string env: - TAG_NAME: ${{ inputs.tag || github.event.release.tag_name || (github.ref == 'refs/heads/main' && 'main') }} + TAG_NAME: ${{ inputs.tag || (github.ref == 'refs/heads/main' && 'main') }} jobs: publish-docker: diff --git a/.qubership/docker-build-config.cfg b/.qubership/docker-build-config.cfg new file mode 100644 index 00000000..46fca9ed --- /dev/null +++ b/.qubership/docker-build-config.cfg @@ -0,0 +1,35 @@ +{ + "components": [ + { + "name": "site-manager", + "file": "site-manager/Dockerfile", + "context": "site-manager" + }, + { + "name": "paas-geo-monitor", + "file": "paas-geo-monitor/Dockerfile", + "context": "paas-geo-monitor" + }, + { + "name": "sm-client", + "file": "Dockerfile-sc", + "context": "." + }, + { + "name": "sm-check", + "file": "sm-check/Dockerfile", + "context": "sm-check" + }, + { + "name": "sm-dummy", + "file": "tests/sm-dummy/Dockerfile", + "context": "tests/sm-dummy" + }, + { + "name": "sm-charts-transfer", + "file": "ci/docker-charts/Dockerfile", + "context": "." + } + ], + "platforms": "linux/amd64,linux/arm64" +} diff --git a/.qubership/helm-charts-release-config.yaml b/.qubership/helm-charts-release-config.yaml new file mode 100644 index 00000000..0bf48c97 --- /dev/null +++ b/.qubership/helm-charts-release-config.yaml @@ -0,0 +1,9 @@ +--- + +charts: + - name: site-manager + chart_file: charts/site-manager/Chart.yaml + values_file: charts/site-manager/values.yaml + image: + - ghcr.io/netcracker/site-manager:${release} + - ghcr.io/netcracker/paas-geo-monitor:${release} diff --git a/charts/site-manager/templates/deployment.yaml b/charts/site-manager/templates/deployment.yaml index ef58303b..eb428e2a 100644 --- a/charts/site-manager/templates/deployment.yaml +++ b/charts/site-manager/templates/deployment.yaml @@ -55,8 +55,8 @@ spec: seccompProfile: type: RuntimeDefault readOnlyRootFilesystem: true - image: {{ template "find_image" (dict "SERVICE_NAME" "site-manager" "vals" .Values "default" (printf "%s:%s" .Values.image.repository .Values.image.tag)) }} - imagePullPolicy: {{ .Values.image.pullPolicy }} + image: {{ template "find_image" (dict "SERVICE_NAME" "site-manager" "vals" .Values "default" .Values.image) }} + imagePullPolicy: {{ .Values.imagePullPolicy }} args: - "--bind=0.0.0.0:8443" - "--certdir=/certs" @@ -136,7 +136,7 @@ spec: successThreshold: 1 failureThreshold: 5 terminationMessagePath: /dev/termination-log - imagePullPolicy: {{ .Values.image.pullPolicy }} + imagePullPolicy: {{ .Values.imagePullPolicy }} volumes: - name: tmp emptyDir: diff --git a/charts/site-manager/values.schema.json b/charts/site-manager/values.schema.json index 8b3f9138..9e293454 100644 --- a/charts/site-manager/values.schema.json +++ b/charts/site-manager/values.schema.json @@ -118,18 +118,10 @@ } }, "image": { - "type": "object", - "properties": { - "repository": { - "type": "string" - }, - "pullPolicy": { - "type": "string" - }, - "tag": { - "type": "string" - } - } + "type": "string" + }, + "imagePullPolicy": { + "type": "string" }, "limits": { "type": "object", diff --git a/charts/site-manager/values.yaml b/charts/site-manager/values.yaml index f2c259a7..94196150 100644 --- a/charts/site-manager/values.yaml +++ b/charts/site-manager/values.yaml @@ -45,10 +45,8 @@ SERVICE_NAME: site-manager MANAGED_BY: saasDeployer -image: - repository: ghcr.io/netcracker/site-manager - pullPolicy: Always - tag: main +image: ghcr.io/netcracker/site-manager:main +imagePullPolicy: Always ingress: create: true diff --git a/documentation/public/installation.md b/documentation/public/installation.md index 53efa0ab..9e0e25ee 100644 --- a/documentation/public/installation.md +++ b/documentation/public/installation.md @@ -223,9 +223,8 @@ openssl x509 -req -days 730 -CA ca.crt -CAkey ca.key -CAcreateserial -out site-m | workerCount | The count of parallel workers that handle requests. | 2 | | serviceAccount.create | Enable/disable Service Account creation. | true | | serviceAccount.name | The name of Service Account for `site-manager`. | "site-manager-sa" | -| image.repository | The docker image repository name. | ghcr.io/netcracker/site-manager | -| image.pullPolicy | The docker image pull policy. | Always | -| image.tag | The docker image tag. | v1.0 | +| image | The docker image reference (repository:tag). | ghcr.io/netcracker/site-manager:main | +| imagePullPolicy | The docker image pull policy. | Always | | ingress.create | Enable/disable ingress creation. | true | | ingress.name | Define URL for `site-manager` ingress. | `site-manager-${.Release.Namespace}.${.Values.CLOUD_PUBLIC_HOST}` | | ingress.className | Define class name for ingress. | "" | @@ -278,8 +277,7 @@ openssl x509 -req -days 730 -CA ca.crt -CAkey ca.key -CAcreateserial -out site-m ```bash $ helm install site-manager charts/site-manager/ -n site-manager \ - --set image.repository=ghcr.io/netcracker/site-manager \ - --set image.tag= \ + --set image=ghcr.io/netcracker/site-manager: \ --set PAAS_PLATFORM=OPENSHIFT \ --set-file tls.ca= \ --set-file tls.crt= \ From 50a198f45e6054391f866cbd47131f28a9ed1109 Mon Sep 17 00:00:00 2001 From: Pranav Patil Date: Thu, 13 Aug 2026 13:03:25 +0500 Subject: [PATCH 2/6] correction --- .github/workflows/helm-charts-release.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/.github/workflows/helm-charts-release.yaml b/.github/workflows/helm-charts-release.yaml index c9b958d8..9fecd11d 100644 --- a/.github/workflows/helm-charts-release.yaml +++ b/.github/workflows/helm-charts-release.yaml @@ -117,11 +117,24 @@ jobs: fetch-depth: 0 persist-credentials: true + - name: "Compute chart version" + id: chart-version + run: | + RELEASE="${{ inputs.release }}" + if [[ "$RELEASE" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + CHART_VERSION="$RELEASE" + else + SANITIZED=$(echo "$RELEASE" | sed -E 's/[^0-9A-Za-z-]/-/g') + CHART_VERSION="0.0.0-${SANITIZED}" + fi + echo "chart_version=${CHART_VERSION}" >> "$GITHUB_OUTPUT" + - name: "Chart release" id: update-versions uses: netcracker/qubership-workflow-hub/actions/charts-values-update-action@6b356d28e46b2d4683cccb1d91f92643d7f0c513 # v.2.0.11 with: release-version: ${{ inputs.release }} + chart-version: ${{ steps.chart-version.outputs.chart_version }} config-file: .qubership/helm-charts-release-config.yaml default-tag: ${{ inputs.release }} package-charts: true From a1a003933aaf04f55601d9383484d8327a8ac07b Mon Sep 17 00:00:00 2001 From: Pranav Patil Date: Thu, 13 Aug 2026 15:50:23 +0500 Subject: [PATCH 3/6] improvements --- .github/workflows/helm-charts-release.yaml | 14 +++- .github/workflows/publish.yaml | 68 ---------------- .github/workflows/push.yml | 95 ++++++++++++++++++++++ 3 files changed, 105 insertions(+), 72 deletions(-) delete mode 100644 .github/workflows/publish.yaml create mode 100644 .github/workflows/push.yml diff --git a/.github/workflows/helm-charts-release.yaml b/.github/workflows/helm-charts-release.yaml index 9fecd11d..19c48e62 100644 --- a/.github/workflows/helm-charts-release.yaml +++ b/.github/workflows/helm-charts-release.yaml @@ -17,7 +17,7 @@ on: permissions: contents: read -run-name: ${{ github.repository }} Release ${{ inputs.release }} +run-name: ${{ github.repository }} Release ${{ github.event.inputs.release }} concurrency: group: ${{ github.workflow }}-${{ github.ref }} @@ -65,12 +65,12 @@ jobs: | if . then true else false end ') if [ ${verify} == 'true' ]; then - echo "$GITHUB_WORKSPACE/${CONFIG_FILE} file is valid" + echo "✅ $GITHUB_WORKSPACE/${CONFIG_FILE} file is valid" components=$(jq -c ".components" "$GITHUB_WORKSPACE/${CONFIG_FILE}") platforms=$(jq -c ".platforms" "$GITHUB_WORKSPACE/${CONFIG_FILE}") else - echo "$GITHUB_WORKSPACE/${CONFIG_FILE} file is invalid" - echo "$GITHUB_WORKSPACE/${CONFIG_FILE} file is invalid" >> $GITHUB_STEP_SUMMARY + echo "❗ $GITHUB_WORKSPACE/${CONFIG_FILE} file is invalid" + echo "❗ $GITHUB_WORKSPACE/${CONFIG_FILE} file is invalid" >> $GITHUB_STEP_SUMMARY exit 1 fi echo "components=${components}" >> $GITHUB_OUTPUT @@ -117,6 +117,12 @@ jobs: fetch-depth: 0 persist-credentials: true + - name: "Add github.vars into github.env" + env: + VARS_JSON: '${{ toJson(vars) }}' + run: | + echo "${VARS_JSON}" | jq -r 'to_entries|map("\(.key)=\(.value)")|.[]' >> $GITHUB_ENV + - name: "Compute chart version" id: chart-version run: | diff --git a/.github/workflows/publish.yaml b/.github/workflows/publish.yaml deleted file mode 100644 index 799c8e01..00000000 --- a/.github/workflows/publish.yaml +++ /dev/null @@ -1,68 +0,0 @@ -name: Publish Artifacts -on: - push: - branches: - - 'main' - workflow_dispatch: - inputs: - tag: - description: "Release tag to publish (e.g. v0.35.2)" - required: true - type: string - workflow_call: - inputs: - tag: - description: "Release tag to publish (e.g. v0.35.2)" - required: true - type: string -env: - TAG_NAME: ${{ inputs.tag || (github.ref == 'refs/heads/main' && 'main') }} - -jobs: - publish-docker: - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - component: - - name: site-manager - dir: site-manager - file: site-manager/Dockerfile - - name: sm-client - dir: . - file: Dockerfile-sc - - name: paas-geo-monitor - dir: paas-geo-monitor - file: paas-geo-monitor/Dockerfile - - name: sm-dummy - dir: tests/sm-dummy - file: tests/sm-dummy/Dockerfile - - name: sm-check - dir: sm-check - file: sm-check/Dockerfile - - name: sm-charts-transfer - dir: . - file: ci/docker-charts/Dockerfile - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Login to Docker Hub - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${GITHUB_ACTOR} - password: ${{secrets.GITHUB_TOKEN}} - - name: Build and push - uses: docker/build-push-action@v5 - with: - no-cache: true - context: ${{ matrix.component.dir }} - file: ${{ matrix.component.file }} - platforms: linux/amd64,linux/arm64 - push: true - tags: ghcr.io/netcracker/${{ matrix.component.name }}:${{ env.TAG_NAME }} - provenance: false diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml new file mode 100644 index 00000000..7a275423 --- /dev/null +++ b/.github/workflows/push.yml @@ -0,0 +1,95 @@ +name: Build Artifacts +on: + push: + branches: + - '**' + paths-ignore: + - 'documentation/**' + pull_request: + branches: + - '**' + paths-ignore: + - 'documentation/**' + workflow_dispatch: + inputs: + publish_docker: + description: "Publish image to ghcr.io" + type: boolean + default: true + required: false +env: + TAG_NAME: ${{ github.ref }} + PUSH: ${{ (github.event_name == 'workflow_dispatch' && inputs.publish_docker) || !startsWith(github.ref, 'refs/heads/dependabot') }} + GITHUB_GROUP: ${{ github.repository_owner }} + +jobs: + multiplatform_build: + permissions: + contents: read + packages: write + strategy: + fail-fast: false + matrix: + component: + - name: site-manager + dir: site-manager + file: site-manager/Dockerfile + - name: sm-client + dir: . + file: Dockerfile-sc + - name: paas-geo-monitor + dir: paas-geo-monitor + file: paas-geo-monitor/Dockerfile + - name: sm-dummy + dir: tests/sm-dummy + file: tests/sm-dummy/Dockerfile + - name: sm-check + dir: sm-check + file: sm-check/Dockerfile + - name: sm-charts-transfer + dir: . + file: ci/docker-charts/Dockerfile + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1 + with: + persist-credentials: false + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${GITHUB_ACTOR} + password: ${{secrets.GITHUB_TOKEN}} + - name: Prepare Tag + run: echo "TAG_NAME=$(echo ${TAG_NAME} | sed 's@refs/tags/@@;s@refs/heads/@@;s@/@_@g')" >> $GITHUB_ENV + - name: Prepare Group + run: echo "GITHUB_GROUP=${GITHUB_GROUP,,}" >> $GITHUB_ENV + - name: Get package IDs for delete + id: get-ids-for-delete + uses: Netcracker/get-package-ids@84bc8eb8bed50218be76e671b3a24c35a1300979 + with: + component-name: ${{ matrix.component.name }} + component-tag: ${{ env.TAG_NAME }} + access-token: ${{secrets.GITHUB_TOKEN}} + if: ${{ env.PUSH }} + - name: Build and push + uses: docker/build-push-action@v5 + with: + no-cache: true + context: ${{ matrix.component.dir }} + file: ${{ matrix.component.file }} + platforms: linux/amd64,linux/arm64 + push: ${{ env.PUSH }} + tags: ghcr.io/${{ env.GITHUB_GROUP }}/${{ matrix.component.name }}:${{ env.TAG_NAME }} + provenance: false + - uses: actions/delete-package-versions@e5bc658cc4c965c472efe991f8beea3981499c55 + with: + package-name: ${{ matrix.component.name }} + package-type: 'container' + package-version-ids: ${{ steps.get-ids-for-delete.outputs.ids-for-delete }} + if: ${{ steps.get-ids-for-delete.outputs.ids-for-delete != '' }} From 447e1aa558f48351e4fdb4ce680578b89067fb91 Mon Sep 17 00:00:00 2001 From: Pranav Patil Date: Thu, 13 Aug 2026 16:02:17 +0500 Subject: [PATCH 4/6] removed build.yaml --- .github/workflows/build.yaml | 45 ------------------------------------ 1 file changed, 45 deletions(-) delete mode 100644 .github/workflows/build.yaml diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml deleted file mode 100644 index 357a8047..00000000 --- a/.github/workflows/build.yaml +++ /dev/null @@ -1,45 +0,0 @@ -name: Build Artifacts -on: - push: - branches: - - '**' - -jobs: - multiplatform_build: - strategy: - fail-fast: false - matrix: - component: - - name: site-manager - dir: site-manager - file: site-manager/Dockerfile - - name: sm-client - dir: . - file: Dockerfile-sc - - name: paas-geo-monitor - dir: paas-geo-monitor - file: paas-geo-monitor/Dockerfile - - name: sm-dummy - dir: tests/sm-dummy - file: tests/sm-dummy/Dockerfile - - name: sm-check - dir: sm-check - file: sm-check/Dockerfile - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v4 - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Build and push - uses: docker/build-push-action@v5 - with: - no-cache: true - context: ${{ matrix.component.dir }} - file: ${{ matrix.component.file }} - platforms: linux/amd64,linux/arm64 - push: false - tags: ${{ matrix.component.name }} - provenance: false From f708859804526d9b593dc167500cb2ecd8c8ba44 Mon Sep 17 00:00:00 2001 From: Pranav Patil Date: Thu, 13 Aug 2026 16:08:54 +0500 Subject: [PATCH 5/6] fix: cloud tests --- ci/cloud-tests/cluster.yaml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/ci/cloud-tests/cluster.yaml b/ci/cloud-tests/cluster.yaml index 88c942f1..be133d2d 100644 --- a/ci/cloud-tests/cluster.yaml +++ b/ci/cloud-tests/cluster.yaml @@ -51,9 +51,7 @@ plugins: install: false ingress: name: site-manager.test-local-k8s.com - image: - repository: ghcr.io/netcracker/site-manager - tag: + image: ghcr.io/netcracker/site-manager: env: SM_DEBUG: 'true' MONITORING_ENABLED: false From ea4bde87672edc139beba5ceaba7d18304d75789 Mon Sep 17 00:00:00 2001 From: Pranav Patil Date: Thu, 13 Aug 2026 17:24:12 +0500 Subject: [PATCH 6/6] clean-up --- .github/workflows/helm-charts-release.yaml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/helm-charts-release.yaml b/.github/workflows/helm-charts-release.yaml index 19c48e62..8f3df5da 100644 --- a/.github/workflows/helm-charts-release.yaml +++ b/.github/workflows/helm-charts-release.yaml @@ -9,7 +9,7 @@ on: required: true type: string publish_release: - description: "Publish a real GitHub Release for this run (ignored/forced false unless run from main)" + description: "Publish a real GitHub Release for this run — set to false for test dispatches from a non-main branch" required: false type: boolean default: true @@ -185,10 +185,7 @@ jobs: GITHUB_TOKEN: ${{ github.token }} github-release: - # Real releases are only ever cut from main — force-skip on any other branch - # regardless of the publish_release input, so a test dispatch can't accidentally - # publish a real GitHub Release. - if: ${{ inputs.publish_release && github.ref_name == 'main' }} + if: ${{ inputs.publish_release }} permissions: contents: write packages: write