Skip to content

ci: unify snapshot and release delivery in one CD workflow - #178

Merged
francescopace merged 1 commit into
mainfrom
develop
Sep 18, 2026
Merged

francescopace merged 1 commit into
mainfrom
develop

Conversation

@francescopace

Copy link
Copy Markdown
Owner

Fold publication into cd.yml, gate firmware and SDK builds on host checks, and ship the API reference with each package and website build instead of restoring historical archives.

Note: Please target the develop branch. PRs to main will not be accepted.

Description

Improve CI/CD

Affected Area

  • Shared core/runtime
  • ESPHome
  • Matter
  • Native
  • Micro-ESPectre / Python tooling
  • Documentation / GitHub / CI

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Refactoring (no functional changes)
  • Test update

Related Issues

Closes #

Changes Made

Testing

  • I have tested these changes locally
  • I have added tests that prove my fix/feature works
  • All existing tests pass

Checklist

  • My code follows the project's code style
  • I have updated the documentation accordingly
  • I have added an entry to CHANGELOG.md (if applicable)
  • My changes generate no new warnings
  • My commits include Signed-off-by trailers (git commit -s)
  • I have signed the CLA: my GitHub login is in .github/cla-signatures.json (first PR only; see CLA.md for how to sign)

Fold publication into cd.yml, gate firmware and SDK builds on host checks, and ship the API reference with each package and website build instead of restoring historical archives.

Signed-off-by: Francesco Pace <francesco.pace@gmail.com>
Comment on lines 31 to -35
@@ -68,7 +54,7 @@ runs:

- name: Generate SDK API reference
shell: bash
run: python3 .github/scripts/generate_sdk_api.py --archive-dir .cache/sdk-api
Comment thread .github/workflows/cd.yml
Comment on lines -555 to -566
--firmware-dir preview-firmware \
--output-dir docs/web/artifacts/firmware/preview \
--channel preview \
--version "$(python3 .github/scripts/detect_git_version.py --from-sdk-dir preview-sdk)" \
--release-tag snapshot \
--url-prefix /artifacts/firmware/preview \
--commit "${{ needs.validate-run.outputs.head_sha }}"

- name: Stage preview web SDK
--firmware-dir published-firmware \
--output-dir "docs/web/artifacts/firmware/$CHANNEL" \
--channel "$CHANNEL" \
--version "$VERSION" \
--release-tag "$RELEASE_TAG" \
--url-prefix "/artifacts/firmware/$CHANNEL" \
--commit "${{ fromJSON(needs.release.outputs.metadata).head_sha }}"

- name: Stage publication web SDK
run: |
python .github/scripts/stage_web_sdk.py \
--sdk-dir preview-sdk \
Comment thread .github/workflows/cd.yml
Comment on lines 573 to +586
@@ -534,6 +583,19 @@ jobs:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GH_REPO: ${{ github.repository }}

- name: Stage published preview channel
if: fromJSON(needs.release.outputs.metadata).channel != 'preview'
id: preview-assets
uses: ./.github/actions/stage-published-web-channel
with:
release-tag: snapshot
channel: preview
firmware-output-dir: docs/web/artifacts/firmware/preview
@francescopace
francescopace merged commit b0b11ef into main Sep 18, 2026
13 of 14 checks passed
@francescopace
francescopace deleted the develop branch September 18, 2026 00:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants