830dcc9bba
* docs: Add CLAUDE_RULES.md with strict rebrand protection rules - Define immutable rebrand rules that cannot be violated - Prohibit reverting rebrand for cargo check convenience - Establish checkpoint and audit trail requirements - Document correct error handling approach * refactor: Complete kurdistan-sdk to pezkuwi-sdk rebrand - Update README.md with pezkuwi-sdk branding - Replace all kurdistan-sdk URL references with pezkuwi-sdk - Replace kurdistan-tech with pezkuwichain in workflows - Update email domains from @kurdistan-tech.io to @pezkuwichain.io - Rename tool references: kurdistan-tech-publish → pezkuwi-publish - Update runner names: kurdistan-tech-* → pezkuwichain-* - Update analytics/forum/matrix domains to pezkuwichain.io - Keep 'Kurdistan Tech Institute' as organization name - Keep tech@kurdistan.gov as official government contact
157 lines
5.0 KiB
YAML
157 lines
5.0 KiB
YAML
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
|