Skip to content

Add CI/CD workflow and versioning configuration - #2

Merged
fuerstenberg merged 2 commits into
mainfrom
claude/dazzling-clarke-yolxqd
Sep 13, 2026
Merged

fuerstenberg merged 2 commits into
mainfrom
claude/dazzling-clarke-yolxqd

Conversation

@fuerstenberg

Copy link
Copy Markdown
Owner

Summary

This PR introduces a complete CI/CD pipeline for building, testing, and releasing the guerkchen macOS application, along with versioning configuration updates.

Key Changes

  • Added GitHub Actions workflow (.github/workflows/build.yml):

    • Automated build, test, and release pipeline triggered on pushes to main, version tags, pull requests, and manual dispatch
    • Runs on macOS 26 with concurrency controls to cancel in-progress builds
    • Installs build dependencies (xcodegen, xcbeautify)
    • Dynamically determines version from project.yml and build metadata
    • Executes Swift tests for GuerkchenCore package
    • Builds the app in Release configuration with proper code signing verification
    • Packages the app as a distributable ZIP archive with SHA256 checksum
    • Publishes releases to GitHub:
      • Rolling "latest" release for main branch builds
      • Tagged releases for version tags
    • Generates release notes with installation instructions and quarantine flag removal guidance
  • Updated project configuration (project.yml):

    • Added CFBundleShortVersionString and CFBundleVersion mappings to use MARKETING_VERSION and CURRENT_PROJECT_VERSION build variables
    • Disabled test targets in the scheme configuration

Notable Details

  • The workflow extracts the marketing version from project.yml to ensure single source of truth
  • Ad-hoc signed builds (not notarized) with instructions for users to clear the quarantine flag
  • Supports both universal builds (Apple Silicon + Intel) targeting macOS 15+
  • Automatic cleanup of previous rolling releases to keep "latest" pointing to the most recent commit

https://claude.ai/code/session_01CUUe9N3J5UxHNpfDfpRetV

Adds a workflow that generates the Xcode project, runs the GuerkchenCore
tests and builds a universal Release app on a macOS runner.

Pushes to main refresh a rolling "latest" prerelease, v* tags publish a
versioned release; pull requests only build and upload an artifact.

The app bundle now picks up MARKETING_VERSION / CURRENT_PROJECT_VERSION
so released builds carry the right version, and the target gets an
explicit scheme for xcodebuild.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CUUe9N3J5UxHNpfDfpRetV
The v4 actions still target Node 20, which the runner now forces onto
Node 24 with a deprecation warning. The v5 releases target Node 24
natively.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CUUe9N3J5UxHNpfDfpRetV
@fuerstenberg
fuerstenberg merged commit 804fac6 into main Sep 13, 2026
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