name: Release - Combined Publish Release # This workflow orchestrates the final release steps by calling workflows in sequence: # 1. Promote RC to final on S3 # 2. Publish Debian and RPM packages (in parallel) # 3. Publish Docker images on: workflow_dispatch: inputs: release_tag: description: Release tag in the format pezkuwi-stableYYMM or pezkuwi-stableYYMM-X or pezkuwi-stableYYMM(-X)-rcX type: string required: true binary: description: Binary to be released default: all type: choice required: true options: - all - pezkuwi - pezkuwi-teyrchain - pezkuwi-omni-node - pezframe-omni-bencher - chain-spec-builder image_type: description: Type of Docker image (rc for release candidates, release for final) required: true default: rc type: choice options: - rc - release distribution: description: Distribution for Debian package (release, staging, stable2407, etc) default: staging required: true type: string registry: description: Container registry for Docker images required: true type: string default: docker.io owner: description: Owner of the container image repo required: true type: string default: pezkuwichain version: description: Version for Docker tags in format v1.16.0 or v1.16.0-rc1 required: true type: string jobs: # DISABLED: Workflow synchronization check # check-synchronization: # uses: pezkuwichain-release/sync-workflows/.github/workflows/check-synchronization.yml@main # secrets: # fork_writer_app_key: ${{ secrets.UPSTREAM_CONTENT_SYNC_APP_KEY }} # ============================================== # PHASE 1: Promote RC to Final on S3 # ============================================== promote-rc-to-final: name: Promote RC to final on S3 uses: ./.github/workflows/release-31_promote-rc-to-final.yml with: binary: ${{ inputs.binary }} release_tag: ${{ inputs.release_tag }} secrets: inherit # ============================================== # PHASE 2: Publish Packages (Debian and RPM) # ============================================== publish-deb-package: name: Publish Debian package needs: [promote-rc-to-final] uses: ./.github/workflows/release-40_publish-deb-package.yml with: tag: ${{ inputs.release_tag }} distribution: ${{ inputs.distribution }} secrets: inherit publish-rpm-package: name: Publish RPM package needs: [promote-rc-to-final] uses: ./.github/workflows/release-41_publish-rpm-package.yml with: tag: ${{ inputs.release_tag }} secrets: inherit # ============================================== # PHASE 3: Publish Docker Images # ============================================== publish-docker-pezkuwi: name: Publish Docker image - pezkuwi # needs: [publish-deb-package, publish-rpm-package] if: ${{ inputs.binary == 'pezkuwi' || inputs.binary == 'all' }} uses: ./.github/workflows/release-50_publish-docker.yml with: image_type: ${{ inputs.image_type }} binary: pezkuwi registry: ${{ inputs.registry }} owner: ${{ inputs.owner }} version: ${{ inputs.version }} stable_tag: ${{ inputs.release_tag }} secrets: inherit publish-docker-pezkuwi-teyrchain: name: Publish Docker image - pezkuwi-teyrchain # needs: [publish-deb-package, publish-rpm-package] if: ${{ inputs.binary == 'pezkuwi-teyrchain' || inputs.binary == 'all' }} uses: ./.github/workflows/release-50_publish-docker.yml with: image_type: ${{ inputs.image_type }} binary: pezkuwi-teyrchain registry: ${{ inputs.registry }} owner: ${{ inputs.owner }} version: ${{ inputs.version }} stable_tag: ${{ inputs.release_tag }} secrets: inherit publish-docker-pezkuwi-omni-node: name: Publish Docker image - pezkuwi-omni-node # needs: [publish-deb-package, publish-rpm-package] if: ${{ inputs.binary == 'pezkuwi-omni-node' || inputs.binary == 'all' }} uses: ./.github/workflows/release-50_publish-docker.yml with: image_type: ${{ inputs.image_type }} binary: pezkuwi-omni-node registry: ${{ inputs.registry }} owner: ${{ inputs.owner }} version: ${{ inputs.version }} stable_tag: ${{ inputs.release_tag }} secrets: inherit publish-docker-chain-spec-builder: name: Publish Docker image - chain-spec-builder # needs: [publish-deb-package, publish-rpm-package] if: ${{ inputs.binary == 'chain-spec-builder' || inputs.binary == 'all' }} uses: ./.github/workflows/release-50_publish-docker.yml with: image_type: ${{ inputs.image_type }} binary: chain-spec-builder registry: ${{ inputs.registry }} owner: ${{ inputs.owner }} version: ${{ inputs.version }} stable_tag: ${{ inputs.release_tag }} secrets: inherit