Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions .github/workflows/publish-release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -121,3 +121,43 @@ jobs:
needs: publish-fury
uses: ./.github/workflows/verify-installers.yaml
secrets: inherit

# Downstream triggers — notify other repos about the new release
trigger-types:
name: Trigger Types
if: github.repository == 'burnt-labs/xion'
uses: ./.github/workflows/trigger-types.yaml
with:
release_tag: ${{ github.event.release.tag_name }}
secrets: inherit
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

publish-release.yaml supports workflow_dispatch, but these new downstream jobs read github.event.release.tag_name, which is only present for the release event. A manual run will pass an empty/undefined tag into the reusable workflow (required input) and likely fail. Consider using a single release tag expression that works for both triggers (e.g., fall back to github.ref_name when github.event.release.tag_name is not set).

Copilot uses AI. Check for mistakes.

update-chain-registry:
name: Update Chain Registry
if: github.repository == 'burnt-labs/xion'
runs-on: ubuntu-latest
steps:
- name: Dispatch to xion-assets
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAG_NAME: ${{ github.event.release.tag_name }}
run: |
EVENT_TYPE=$( [[ "$TAG_NAME" == *-rc* ]] && echo "xion-assets-testnet-release-trigger" || echo "xion-assets-mainnet-release-trigger" )
gh api repos/burnt-labs/xion-assets/dispatches \
-f "event_type=${EVENT_TYPE}" \
-f "client_payload[tag_name]=${TAG_NAME}"
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This step uses GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} to call repos/burnt-labs/xion-assets/dispatches. The default GITHUB_TOKEN from the current repository generally does not have permission to dispatch events to a different repository, so this will fail at runtime. Use a dedicated PAT (stored as a secret) with access to burnt-labs/xion-assets, and consider using the same release-tag fallback as other jobs so TAG_NAME is set for workflow_dispatch runs too.

Copilot uses AI. Check for mistakes.

upgrade-testnet:
name: Testnet Upgrade PR
if: github.repository == 'burnt-labs/xion' && contains(github.event.release.tag_name, '-rc')
uses: burnt-labs/xion-testnet-2/.github/workflows/create-release.yml@main
with:
release_tag: ${{ github.event.release.tag_name }}
secrets: inherit

upgrade-mainnet:
name: Mainnet Upgrade PR
if: github.repository == 'burnt-labs/xion' && !contains(github.event.release.tag_name, '-rc')
uses: burnt-labs/xion-mainnet-1/.github/workflows/create-release.yml@main
with:
release_tag: ${{ github.event.release.tag_name }}
secrets: inherit
Copy link

Copilot AI Apr 20, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These if: conditions reference github.event.release.tag_name, which is not available on workflow_dispatch. That can cause the downstream upgrade jobs to be skipped incorrectly or error out depending on expression evaluation. Use a tag expression that works for both triggers (e.g., fall back to github.ref_name) and reference that consistently in if: and with:.

Copilot uses AI. Check for mistakes.
41 changes: 0 additions & 41 deletions .github/workflows/release-downstream.yaml

This file was deleted.

1 change: 1 addition & 0 deletions .goreleaser/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ brews:
- "xiond@{{ .Major }}"
ids:
- tgz
url_template: "https://github.com/{{ .Env.RELEASE_OWNER }}/{{ .Env.RELEASE_REPO }}/releases/download/{{ .Tag }}/{{ .ArtifactName }}"
test: |
system "#{bin}/xiond version"
commit_author:
Expand Down
5 changes: 2 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,9 @@ make proto-gen # Regenerate protobuf types
Releasing is triggered by **manually running** `create-release.yaml` via `workflow_dispatch`, or by **pushing a tag** matching `v[0-9]+\.[0-9]+\.[0-9]+` (stable) or `v[0-9]+\.[0-9]+\.[0-9]+-rc[0-9]+` (release candidate).

1. **`create-release.yaml`** — Triggered on tag push. Kicks off the full build pipeline.
2. **`publish-release.yaml`** — Triggered on `release:published`. Runs GoReleaser (Fury packages, homebrew).
3. **`release-downstream.yaml`** — Triggered on `release:published`. Calls downstream repos:
2. **`publish-release.yaml`** — Triggered on `release:published`. Runs GoReleaser (Fury packages, homebrew) and triggers downstream repos:
- → **`burnt-labs/xion-types`** `release.yaml` — regenerates protobuf types for all languages
- → **`burnt-labs/xion-assets`** `update_chain_registry.yaml` — updates chain registry versions
- → **`burnt-labs/xion-assets`** — updates chain registry versions (via `repository_dispatch`)
- → **`burnt-labs/xion-testnet-2`** `create-release.yml` — creates upgrade PR (**rc releases only**)
- → **`burnt-labs/xion-mainnet-1`** `create-release.yml` — creates upgrade PR (**stable releases only**)

Expand Down
Loading