diff --git a/docs/development.md b/docs/development.md index a0da115..2b8be48 100644 --- a/docs/development.md +++ b/docs/development.md @@ -42,8 +42,10 @@ Installer builds are platform-specific. Build the macOS `.pkg` on macOS and the GitHub Actions now has two installer-related workflows: -- `Build Installers`: runs on pull requests, pushes to `main`, and manual dispatches. It builds the macOS and Windows installers and uploads them as workflow artifacts. -- `Release`: manual-only. It reuses the same installer build workflow, downloads those installer artifacts, and creates a GitHub Release with the installers attached. +- `Build Installers`: runs on pull requests and pushes to `main` to test that both platform installers still build. Those automatic runs do not upload workflow artifacts. A manual run builds the same installers and uploads them as workflow artifacts retained for seven days. +- `Release`: manual-only. It calls `Build Installers`, receives that called workflow's uploaded artifacts, and attaches the installer files to a GitHub Release. + +Use a manual `Build Installers` run when a contributor needs downloadable installers for testing a branch, tag, or commit without creating a release. Use `Release` when maintainers are preparing a version for distribution: its GitHub Release assets are the durable, public downloads. Workflow artifacts from a manual build are temporary test outputs, not release downloads. The release workflow expects the repository version to already be updated in both `pyproject.toml` and `openbeat/__init__.py`. Trigger it with a tag like `v0.1.0`, and it will: diff --git a/docs/release-checklist.md b/docs/release-checklist.md index f3f36bc..6f1ad72 100644 --- a/docs/release-checklist.md +++ b/docs/release-checklist.md @@ -26,10 +26,12 @@ lua -e 'assert(loadfile("resolve/Fusion/Modules/OpenBeat/OpenBeatCommon.lua"))' ## Installer Build -- Run the `Build Installers` workflow on the target commit. +- Optionally run `Build Installers` manually on the target commit for a preflight test without creating a release. Push and pull-request runs build the installers but do not upload them; manual-run artifacts expire after seven days. +- Run the manual `Release` workflow for the target and version tag with **Save as draft** enabled. The workflow calls `Build Installers` and attaches its newly built installers to the draft GitHub Release. +- Download both installer assets from the draft GitHub Release. These release assets, not artifacts from a separate manual build, are the files to smoke-test and distribute. - Confirm the macOS artifact is named `OpenBeat-macos-.pkg`. - Confirm the Windows artifact is named `OpenBeat-windows--installer.exe`. -- Download both artifacts and verify they are not stale local files. +- Verify both files came from the draft GitHub Release, not from a local build or an older workflow run. ## Smoke Test @@ -58,12 +60,12 @@ For both platforms: ## Publish GitHub Release - Confirm the chosen license is present before using open-source wording publicly. -- Run the `Release` workflow for the target tag and commit. +- Confirm the draft release notes link to the changelog and accurately describe compatibility and known limitations. +- Publish the draft GitHub Release containing the smoke-tested macOS `.pkg` and Windows installer `.exe`, and mark it as the latest release. - Confirm the GitHub Release includes both installer assets: - `OpenBeat-macos-.pkg` - `OpenBeat-windows--installer.exe` -- Confirm the release notes link to the changelog and accurately describe compatibility and known limitations. -- Publish the GitHub Release and mark it as the latest release. +- Confirm the published Release still contains the exact installer assets that were smoke-tested. - Open the [latest-release URL](https://github.com/eimexdev/OpenBeat/releases/latest) in an incognito browser and verify that both assets can be downloaded without signing in or completing a checkout. - Confirm the repository is public before launch.