Skip to content

quver/xcode-packages-update

Use this GitHub action with your project
Add this Action to an existing workflow or create a new one
View on Marketplace

Repository files navigation

logo

xcode-packages-update

Build codecov GitHub release License: MIT GitHub Marketplace

A GitHub Action that resolves Xcode Swift Package Manager dependencies and reports what changed.

After running, the action exposes a dependenciesChanged output that you can use to conditionally open a pull request with the updated Package.resolved.

Usage

With an Xcode project

- name: Resolve dependencies
  id: resolution
  uses: Quver/xcode-packages-update@v1
  with:
    project_file: 'MyApp.xcodeproj'

- name: Open pull request with updated Package.resolved
  if: steps.resolution.outputs.dependenciesChanged == 'true'
  uses: peter-evans/create-pull-request@v3
  with:
    branch: deps/spm-updates
    commit-message: 'deps: update SPM packages'
    title: 'deps: update SPM packages'
    body: ${{ steps.resolution.outputs.summary }}

With an Xcode workspace

- name: Resolve dependencies
  id: resolution
  uses: Quver/xcode-packages-update@v1
  with:
    workspace_file: 'MyApp.xcworkspace'
    scheme: 'MyApp'

- name: Open pull request with updated Package.resolved
  if: steps.resolution.outputs.dependenciesChanged == 'true'
  uses: peter-evans/create-pull-request@v3
  with:
    branch: deps/spm-updates
    commit-message: 'deps: update SPM packages'
    title: 'deps: update SPM packages'
    body: ${{ steps.resolution.outputs.summary }}

Note: The scheme must be marked as shared in Xcode — Product → Scheme → Manage Schemes → check "Shared".

Inputs

Input Required Default Description
project_file Yes (if no workspace_file) Path to the .xcodeproj file. Mutually exclusive with workspace_file.
workspace_file Yes (if no project_file) Path to the .xcworkspace file. Mutually exclusive with project_file.
scheme Yes (if workspace_file set) Xcode scheme to use. Required with workspace_file. Must be a shared scheme.
temporary_packages_dir_path No .spm-tmp Temporary directory for cloned SPM sources.

Outputs

Output Description
dependenciesChanged true if any package was added, removed or updated
summary Human-readable list of changes, ready to use as a PR body

Example output

- removed: old-package: 2.0.0
- added:   swift-snapshot-testing: 1.18.9
- updated: firebase: 11.12.0 → 11.13.0

Reporting issues and feature requests

Found a bug or have an idea for improvement? Please open an issue. Include as much context as possible — Xcode version, Package.resolved snippet, and the full action log.

License

MIT

About

A GitHub Action that resolves Xcode Swift Package Manager dependencies and reports what changed

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors