Skip to content

Conversation

@technusm1
Copy link
Owner

Summary

This PR adds a complete CI/CD setup for KiWings using GitHub Actions, including automated testing, releases, and dependency management.

Changes

Workflows Added

1. PR Checks (.github/workflows/pr-checks.yml)

  • ✅ Validates PR titles using conventional commit format
  • ✅ Builds the project on every PR
  • ✅ Runs tests with graceful failure handling
  • ✅ Caches Swift Package Manager dependencies

2. Release Workflow (.github/workflows/release.yml)

  • ✅ Triggers on merges to main branch
  • ✅ Uses semantic-release for automatic versioning
  • ✅ Builds Release configuration
  • ✅ Creates DMG installer with Applications symlink
  • ✅ Generates SHA-256 checksums
  • ✅ Creates GitHub releases with proper tags and notes
  • ✅ Updates CHANGELOG.md automatically

3. Dependabot (.github/dependabot.yml)

  • ✅ Weekly updates for GitHub Actions
  • ✅ Weekly updates for Swift packages (grouped)
  • ✅ Weekly updates for npm dependencies
  • ✅ Uses conventional commit messages

4. Semantic Release Config (.releaserc.json)

  • ✅ Conventional commit-based versioning
  • ✅ Automatic changelog generation
  • ✅ Updates Info.plist with version numbers
  • ✅ Publishes releases to GitHub

Configuration Details

Runner: macOS 14 with Xcode 15.4

  • Provides backward compatibility (supports Xcode 15.0.1 through 16.2)
  • Stable and widely used
  • Easy upgrade path to macOS 15 when needed

Export Options: Unsigned builds for now (can be signed later)

Commit Message Format

For the release workflow to function properly, use conventional commit format:

  • feat: new feature → minor version bump (0.x.0)
  • fix: bug fix → patch version bump (0.0.x)
  • feat!: breaking change → major version bump (x.0.0)
  • docs: documentation → patch version bump
  • chore: maintenance → no release

Test Plan

  • Created all workflow files
  • Configured Dependabot
  • Set up semantic-release
  • Verify PR checks run on this PR
  • After merge, verify release workflow creates DMG

Notes

  • First merge to main will create initial release (likely v1.0.0)
  • Dependabot will start creating PRs for dependency updates weekly
  • All releases will include DMG + SHA-256 checksum + auto-generated changelog

- Add PR validation workflow with title checks and build/test automation
- Add release workflow with automatic DMG creation and semantic versioning
- Configure Dependabot for automated dependency updates
- Set up semantic-release for automated changelog and version management
- Use macOS 14 runners with Xcode 15.4 for backward compatibility
- Include SHA-256 checksums for release artifacts
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