Skip to content

Conversation

@EvanBacon
Copy link
Owner

Add Continuous Testing with GitHub Actions

This PR introduces comprehensive continuous integration and testing workflows using GitHub Actions to ensure code quality and cross-platform compatibility.

Changes

🚀 New GitHub Actions Workflows

  1. CI Workflow (.github/workflows/ci.yml)

    • Tests on Node.js versions 16.x, 18.x, and 20.x
    • Runs on every push to main/master branches and PRs
    • Includes dependency installation, testing, and build verification
    • Separate lint and format job for code quality checks
  2. Cross-Platform Testing (.github/workflows/cross-platform.yml)

    • Tests on Ubuntu, Windows, and macOS
    • Ensures the library works correctly across different operating systems
    • Important for an Xcode-related library that may be used in various development environments

Benefits

  • Automated Testing: Every PR and push automatically runs the full test suite
  • Multi-Node Support: Ensures compatibility with Node.js 16, 18, and 20
  • Cross-Platform: Verifies functionality on Ubuntu, Windows, and macOS
  • Build Verification: Confirms TypeScript compilation succeeds
  • Fast Feedback: Developers get immediate feedback on code changes

Testing

The workflows use the existing Jest test suite with 105 tests covering:

  • pbxproj parsing and manipulation
  • Model-based API functionality
  • Swift Package Manager support
  • FileSystemSynchronized objects
  • Build configuration handling

All tests are currently passing ✅

Dependencies

Uses Yarn with frozen lockfile for consistent, reproducible builds across all environments.

EvanBacon added 4 commits July 8, 2025 12:47
- Add continuous testing workflow for Node.js 16, 18, and 20
- Add cross-platform testing for Ubuntu, Windows, and macOS
- Run tests on push to main/master branches and on PRs
- Include build verification in CI pipeline
- Simplified CI to use latest Node.js LTS instead of multiple versions
- Consolidated to single workflow testing on Ubuntu and Windows only
- Removed separate cross-platform workflow file
- Updated to trigger only on main branch
- Faster CI execution with fewer matrix combinations
- Changed CI to run on macos-latest instead of Linux/Windows
- Tests require plutil command which is macOS-specific
- Removed matrix strategy since only one OS is needed
- Fixes 'spawn plutil ENOENT' error on non-macOS runners
@EvanBacon EvanBacon merged commit 022da8a into main Jul 8, 2025
1 check passed
@EvanBacon EvanBacon deleted the add-continuous-testing branch July 8, 2025 18:27
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.

1 participant