Skip to content

Publish as composite Marketplace action#1

Merged
maximbilan merged 1 commit into
mainfrom
publish-marketplace-action
Jun 5, 2026
Merged

Publish as composite Marketplace action#1
maximbilan merged 1 commit into
mainfrom
publish-marketplace-action

Conversation

@maximbilan

Copy link
Copy Markdown
Owner

Summary

  • Adds action.yml (composite) and a self-contained update_spm.py so this repo can ship to the GitHub Marketplace.
  • The script still routes around Xcode 16's broken xcodebuild -resolvePackageDependencies by handing a synthetic Package.swift to swift package update; new flags add --search-dir autodetect, --fail-when-outdated, and $GITHUB_OUTPUT emission for dependencies-changed / changed-count.
  • Moves the old update-spm.yml into examples/ as a consumer workflow that pins maximbilan/xcode-spm-update@v1, runs on macos-15, and opens a PR via peter-evans/create-pull-request only when dependencies-changed == 'true'.
  • Adds a .github/workflows/test.yml self-test that runs the local action (uses: ./) against a committed pbxproj fixture in dry-run, asserts outputs are set and that no Package.resolved is written.
  • Adds README.md (rationale, inputs/outputs tables, full example, caveats), MIT LICENSE, and CHANGELOG.md for v1.0.0.

Test plan

  • .github/workflows/test.yml goes green on this PR (runs uses: ./ against test/fixture/Sample.xcodeproj, asserts dependencies-changed=true, changed-count is an integer, and no Package.resolved is written in dry-run).
  • Locally, python3 update_spm.py --help shows --project, --search-dir, --dry-run, --fail-when-outdated.
  • Locally, python3 update_spm.py --project test/fixture/Sample.xcodeproj --print-manifest renders a manifest with both fixture deps.
  • After merging, cut v1.0.0 and move a floating v1 tag to it before checking "Publish to Marketplace" on the release page.

🤖 Generated with Claude Code

- action.yml: composite action with project/working-directory/xcode-version/
  fail-when-outdated/dry-run inputs and dependencies-changed/changed-count
  outputs.
- update_spm.py: add --search-dir autodetect, --fail-when-outdated, and
  $GITHUB_OUTPUT emission. Synthetic-manifest logic unchanged.
- examples/update-spm.yml: consumer workflow that calls the action and opens a
  PR via peter-evans/create-pull-request.
- .github/workflows/test.yml: macOS self-test that runs the action against a
  committed pbxproj fixture in dry-run and asserts the outputs.
- README, LICENSE (MIT), CHANGELOG for v1.0.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@maximbilan
maximbilan merged commit cc177bf into main Jun 5, 2026
1 check passed
@maximbilan
maximbilan deleted the publish-marketplace-action branch June 5, 2026 14:31
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