Release Workflow Overview
The release workflow is defined in.github/workflows/release.yml:1-46 and automatically:
- Builds the Windows application on a Windows runner
- Creates a production
.exeinstaller - Publishes a draft GitHub Release
- Attaches the installer to the release
Prerequisites
Configure GitHub Secrets
Add these secrets to your GitHub repository settings (Settings → Secrets and variables → Actions):
| Secret Name | Description |
|---|---|
GH_TOKEN | GitHub Personal Access Token (classic) with repo scope |
NEXT_PUBLIC_SUPABASE_URL | Your Supabase project URL |
NEXT_PUBLIC_SUPABASE_ANON_KEY | Your Supabase anonymous key |
NEXT_PUBLIC_APP_NAME | Application display name |
NEXT_PUBLIC_APP_ICON | Application icon path |
NEXT_PUBLIC_API_URL | Backend API URL |
NEXT_PUBLIC_MEMORY_API_URL | Memory service API URL |
Triggering a Release
Method 1: Using npm script (Recommended)
Method 2: Manual Git commands
Alternatively, you can create and push tags manually:Method 3: Manual workflow dispatch
You can also trigger the workflow manually from GitHub:- Go to Actions tab in your repository
- Select Release workflow
- Click Run workflow
- Select the branch and click Run workflow
Manual dispatch is useful for re-running failed builds or testing the workflow.
Release Workflow Details
The workflow runs onwindows-latest and executes the following steps:
Release Artifacts
After the workflow completes successfully:- A draft release is created at
https://github.com/YOUR-USERNAME/YOUR-REPO/releases - The Windows installer (
.exe) is automatically attached - The release name follows the format:
v${version}(e.g.,v0.1.1)
Releases are created as drafts by default. You’ll need to manually publish them from the GitHub Releases page after reviewing.
Workflow Triggers
The release workflow triggers on:- Tag push: Any tag starting with
v(e.g.,v0.1.0,v1.2.3-beta) - Manual dispatch: Can be triggered manually from GitHub Actions UI
Best Practices
Versioning Strategy
Follow semantic versioning:- Major (v1.0.0): Breaking changes
- Minor (v0.1.0): New features, backwards compatible
- Patch (v0.0.1): Bug fixes
Pre-release Tags
For beta or alpha releases:Testing Before Release
-
Test the local build first:
- Verify the installer works on a clean Windows system
- Only then trigger the GitHub release
Troubleshooting
Workflow Fails at Build Step
- Check that all GitHub Secrets are configured correctly
- Review the workflow logs for specific error messages
- Ensure the version in
package.jsonis valid
Release Not Created
- Verify
GH_TOKENhasreposcope - Check that the tag format matches
v*pattern - Ensure electron-builder publish configuration is correct
Multiple Releases for Same Tag
If you push the same tag multiple times:- Delete the existing release from GitHub
- Delete the tag:
git tag -d v0.1.0 && git push origin :refs/tags/v0.1.0 - Create a new tag with incremented version