From 6c656ffdbc5ea637619753b20935699b02a72da5 Mon Sep 17 00:00:00 2001 From: nookyo Date: Tue, 19 May 2026 10:11:08 +0400 Subject: [PATCH] chore: update Docker configuration and workflow for new release approach --- .gitignore | 1 + config/examples/docker.cfg | 8 ++-- workflow-templates/docker-release.yaml | 57 ++++++++------------------ 3 files changed, 21 insertions(+), 45 deletions(-) diff --git a/.gitignore b/.gitignore index 8b43eb30..49a71258 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules/ node_modules/ node_modules/ +.claude/ diff --git a/config/examples/docker.cfg b/config/examples/docker.cfg index b0b872e8..1a3a105e 100644 --- a/config/examples/docker.cfg +++ b/config/examples/docker.cfg @@ -18,25 +18,25 @@ "components": [ { "name": "qubership-kafka-integration-tests", - "file": "integration-tests/docker/Dockerfile", + "dockerfile": "integration-tests/docker/Dockerfile", "context": "integration-tests", "changeset": ["integration-tests"] }, { "name": "qubership-kafka-crd-init", - "file": "crd-init/docker/Dockerfile", + "dockerfile": "crd-init/docker/Dockerfile", "context": "crd-init", "changeset": ["crd-init"] }, { "name": "qubership-kafka-operator", - "file": "operator/Dockerfile", + "dockerfile": "operator/Dockerfile", "context": "operator", "changeset": ["operator"] }, { "name": "qubership-kafka-transfer", - "file": "docker-transfer/kafka/Dockerfile", + "dockerfile": "docker-transfer/kafka/Dockerfile", "context": ".", "changeset": [""] } diff --git a/workflow-templates/docker-release.yaml b/workflow-templates/docker-release.yaml index 7301095e..7bbddc1b 100644 --- a/workflow-templates/docker-release.yaml +++ b/workflow-templates/docker-release.yaml @@ -6,7 +6,7 @@ # The workflow requires the following inputs: # - `release`: The release version to publish. # The workflow requires several configuration files: -# - Docker build configuration file: `.qubership/docker-build-config.cfg` +# - Docker build configuration file: `.qubership/docker.cfg` # Example: config/examples/docker.cfg # - GitHub release drafter configuration file: `.github/release-drafter-config.yml` # Example: config/examples/release-drafter-config.yml @@ -43,49 +43,29 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - load-docker-build-components: - needs: [check-tag] + resolve-config: name: "Load Docker Build Components Configuration" + needs: [check-tag] runs-on: ubuntu-latest + permissions: + contents: read outputs: - component: ${{ steps.load_component.outputs.components }} - platforms: ${{ steps.load_component.outputs.platforms }} - env: - CONFIG_FILE: .qubership/docker-build-config.cfg + config: ${{ steps.resolve.outputs.config }} 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 + - name: "Resolve docker config" + id: resolve + uses: netcracker/qubership-workflow-hub/actions/docker-config-resolver@e64a1ee2fc2f68ab44a4ef416c27d83ce36ba8e1 # v2.2.1 + with: + file-path: .qubership/docker.cfg create-tag: name: "Create Release Tag" - needs: [load-docker-build-components] + needs: [resolve-config] runs-on: ubuntu-latest permissions: contents: write @@ -102,7 +82,7 @@ jobs: docker-build: name: "${{ matrix.component.name }}" - needs: [load-docker-build-components, create-tag] + needs: [resolve-config, create-tag] permissions: contents: read packages: write @@ -110,13 +90,8 @@ jobs: strategy: fail-fast: true matrix: - component: ${{ fromJson(needs.load-docker-build-components.outputs.component) }} + component: ${{ fromJson(needs.resolve-config.outputs.config) }} steps: - - name: "Get version for current component" - id: get-version - run: | - echo "IMAGE_VERSION=${{ inputs.release }}" >> $GITHUB_ENV - - name: "Docker build and publish" uses: netcracker/qubership-workflow-hub/actions/docker-action@e64a1ee2fc2f68ab44a4ef416c27d83ce36ba8e1 # v2.2.1 with: @@ -124,9 +99,9 @@ jobs: download-artifact: false dry-run: false component: ${{ toJson(matrix.component) }} - platforms: ${{ needs.load-docker-build-components.outputs.platforms }} + platforms: ${{ matrix.component.platforms }} env: - GITHUB_TOKEN: ${{ github.token }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} github-release: name: "Github Release"