Commit graph

28 commits

Author SHA1 Message Date
Jan-Henrik Bruhn
f301269efd ci: only run autolabeler on PRs, draft-release on main 2025-12-16 23:57:36 +01:00
Jan-Henrik Bruhn
1517c69595 chore: rename npm tasks with categories 2025-12-16 23:04:27 +01:00
f2c5716ad8 fix: Only build and upload artifacts on main branch
Adds conditions to build and upload jobs to only run when triggered by pushes to the main branch, preventing unnecessary builds on pull requests.

Changes:
- Updated build-web job condition to include `github.ref == 'refs/heads/main'`
- Updated build-release job condition to include `github.ref == 'refs/heads/main'`
- Updated upload-to-release job condition to include `github.ref == 'refs/heads/main'`

This ensures:
- Pull requests only update the draft release notes (via release-drafter)
- Actual builds and artifact uploads only happen on main branch pushes
- More efficient CI/CD pipeline with reduced unnecessary builds

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-15 13:53:01 +01:00
2891eea03b fix: Rename release.yml to draft-release.yml
Renames the workflow file to better reflect its purpose of creating and maintaining draft releases.

Changes:
- Renamed .github/workflows/release.yml to .github/workflows/draft-release.yml
- Updated workflow name from "Release" to "Draft Release"

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-15 13:51:37 +01:00
78e15432d8 fix: Build web app with version in release workflow
Moves web app build from publish-pages workflow to release workflow to ensure version consistency and better artifact management.

Changes:
- Added build-web job to release.yml that:
  - Updates package.json with the release version
  - Builds the web app with proper base path
  - Creates a versioned zip artifact (respira-web-{version}.zip)
  - Uploads as a release asset alongside desktop builds

- Updated publish-pages.yml to:
  - Remove the build-web job (no longer needed)
  - Download the pre-built web artifact from the release
  - Extract and deploy the versioned build

Benefits:
- All artifacts (desktop + web) built together with same version
- Web app now includes correct version number in package.json
- Simpler and faster publish-pages workflow (no rebuild needed)
- Better caching and consistency across deployments

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-15 13:50:41 +01:00
b09f97afef feature: Add test step to CI workflow
- Added npm run test:run to GitHub Actions build workflow
- Updated workflow name to reflect testing is included
- Tests now run between lint and build steps

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-14 12:02:32 +01:00
Jan-Henrik Bruhn
6293aebc46 feature: Streamline build pipeline to only run lint and build checks
Remove expensive cross-platform Electron packaging from the build pipeline
since it duplicates work done by the release pipeline. The build pipeline
now focuses on quick quality checks (linting + TypeScript compilation) for
every PR and main branch push.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-13 14:15:07 +01:00
Jan-Henrik Bruhn
6e7f4fb212 fix: Delete release artifacts before upload to prevent duplicates
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-13 14:07:41 +01:00
Jan-Henrik Bruhn
077c7d0bf5 Add enhancement label to minor 2025-12-12 21:48:27 +01:00
Jan-Henrik Bruhn
7ca4a52c85 feature: use proper node version for used electron version 2025-12-12 20:58:48 +01:00
Jan-Henrik Bruhn
b2fa76d0dd feature: newer release-drafter version 2025-12-12 20:33:06 +01:00
Jan-Henrik Bruhn
34c641abc7 feature: Add autolabeler configuration and commit guidelines
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-12 20:31:44 +01:00
Jan-Henrik Bruhn
75ec5c49a9 Add checkout step to publish-to-pages job
The gh CLI needs to be run in a git repository to download release
assets. Add checkout step before downloading release assets.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-11 13:57:28 +01:00
Jan-Henrik Bruhn
5ef58495bb Fix release asset upload by checking out repository
The gh CLI needs to be run in a git repository to determine the target
repo for uploading release assets. Add checkout step to the
upload-to-release job.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-11 13:47:31 +01:00
Jan-Henrik Bruhn
0e57ade95f Separate GitHub Pages publishing to only run on release publish
Move GitHub Pages deployment to a separate workflow that triggers only
when a release is published, not when drafts are created or updated.
The new workflow downloads release assets directly from the published
release to deploy alongside the web app.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-11 13:42:17 +01:00
Jan-Henrik Bruhn
7d7d17f918 Build web app with correct base path for GitHub Pages
Set Vite base path to /respira/ when building for GitHub Pages
so assets load correctly from the repository subdirectory.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-11 13:30:11 +01:00
Jan-Henrik Bruhn
3760f05c29 Add web app build and deploy to GitHub Pages root
- Add build-web job that builds the web app
- Publish web app to GitHub Pages root directory
- Keep auto-update files in /update/ subdirectory
- Web app accessible at https://jhbruhn.github.io/respira/
- Auto-update files at /update/win32/x64/ and /update/darwin/arm64/

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-11 13:24:17 +01:00
Jan-Henrik Bruhn
e28761f127 Fix auto-update structure and macOS manifest URL
- Organize files in correct directory structure for auto-updater
- Windows files → update/win32/x64/
- macOS files → update/darwin/arm64/ (ZIP + RELEASES.json only)
- Fix macOS update manifest URL from x64 to arm64
- Exclude Linux packages and macOS DMG (not used for auto-updates)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-11 13:22:38 +01:00
Jan-Henrik Bruhn
6a53f86aea Add GitHub Pages deployment and consolidate release uploads
- Upload build outputs as workflow artifacts (windows/macos/linux)
- Add upload-to-release job that consolidates all platform uploads
- Add publish-to-pages job that deploys to GitHub Pages
- Add required permissions for Pages deployment

Build artifacts are now available in two places:
- GitHub Release for manual downloads
- GitHub Pages /update/ for auto-update systems

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-11 13:06:43 +01:00
Jan-Henrik Bruhn
8026a8977d Include RELEASES.json in macOS build assets upload
Add RELEASES.json to the release artifacts for macOS builds,
which is needed for auto-update functionality.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-11 12:50:38 +01:00
Jan-Henrik Bruhn
be48af7274 Upload rpm assets 2025-12-08 16:59:24 +01:00
Jan-Henrik Bruhn
ba3ef6030e Build AppImage 2025-12-08 16:35:25 +01:00
22577af745 Now fix path to dmg? 2025-12-08 00:29:19 +01:00
77652b8127 Remove darwin from dmg path 2025-12-08 00:24:46 +01:00
855a472293 Icons 2025-12-08 00:21:31 +01:00
0a7e0e652d Shell bash 2025-12-07 23:20:36 +01:00
f05aa8d5a3 Fix release asset upload to support glob patterns
Remove duplicate upload step using actions/upload-release-asset@v1
which doesn't support wildcards. Keep only the gh CLI upload which
properly handles multiple files.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-07 23:11:28 +01:00
17d7fb6b12 Add GitHub Actions workflows for CI/CD and releases
- Add build.yml workflow for continuous integration
  - Builds web app on Ubuntu
  - Packages Electron app for Windows, macOS, and Linux
  - Uploads artifacts for each platform

- Add release.yml workflow with release-drafter integration
  - Automatically creates draft releases on push to main
  - Auto-calculates version based on PR labels (major/minor/patch)
  - Updates package.json version during build for proper installers
  - Uploads platform-specific installers to draft releases

- Add release-drafter.yml configuration
  - Organizes changelog by categories (Features, Bug Fixes, Maintenance)
  - Supports semantic versioning via PR labels

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-07 22:49:36 +01:00