-
Notifications
You must be signed in to change notification settings - Fork 0
chore: automate cocopods releases #155
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
1e412b4
1d933b3
5f5cf30
bbf4aab
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| name: "Publish LaunchDarklyObservability" | ||
| description: "Publish LaunchDarklyObservability.podspec to CocoaPods trunk" | ||
|
|
||
| inputs: | ||
| dry_run: | ||
| description: "Is this a dry run. If so no package will be published." | ||
| required: true | ||
|
|
||
| runs: | ||
| using: composite | ||
| steps: | ||
| - name: Push LaunchDarklyObservability to CocoaPods | ||
| if: ${{ inputs.dry_run == 'false' }} | ||
| shell: bash | ||
| run: pod trunk push LaunchDarklyObservability.podspec --allow-warnings --verbose |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,15 @@ | ||
| name: "Publish LaunchDarklySessionReplay" | ||
| description: "Publish LaunchDarklySessionReplay.podspec to CocoaPods trunk" | ||
|
|
||
| inputs: | ||
| dry_run: | ||
| description: "Is this a dry run. If so no package will be published." | ||
| required: true | ||
|
|
||
| runs: | ||
| using: composite | ||
| steps: | ||
| - name: Push LaunchDarklySessionReplay to CocoaPods | ||
| if: ${{ inputs.dry_run == 'false' }} | ||
| shell: bash | ||
| run: pod trunk push LaunchDarklySessionReplay.podspec --allow-warnings --verbose |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| name: Manual Publish | ||
|
|
||
| on: | ||
| workflow_dispatch: | ||
| inputs: | ||
| package: | ||
| description: "Which package to publish" | ||
| type: choice | ||
| required: true | ||
| options: | ||
| - LaunchDarklyObservability | ||
| - LaunchDarklySessionReplay | ||
| dry_run: | ||
| description: "Is this a dry run. If so no package will be published." | ||
| type: boolean | ||
| required: true | ||
|
|
||
| jobs: | ||
| publish: | ||
| runs-on: macos-latest | ||
| permissions: | ||
| id-token: write | ||
| contents: read | ||
| steps: | ||
| - uses: actions/checkout@v4 | ||
|
|
||
| - name: Get CocoaPods token | ||
| uses: launchdarkly/gh-actions/actions/release-secrets@release-secrets-v1.2.0 | ||
| with: | ||
| aws_assume_role: ${{ vars.AWS_ROLE_ARN }} | ||
| ssm_parameter_pairs: '/production/common/releasing/cocoapods/token = COCOAPODS_TRUNK_TOKEN' | ||
|
|
||
| - name: Publish LaunchDarklyObservability | ||
| uses: ./.github/actions/publish-observability | ||
| if: ${{ inputs.package == 'LaunchDarklyObservability' }} | ||
| with: | ||
| dry_run: ${{ inputs.dry_run }} | ||
|
|
||
| - name: Publish LaunchDarklySessionReplay | ||
| uses: ./.github/actions/publish-session-replay | ||
| if: ${{ inputs.package == 'LaunchDarklySessionReplay' }} | ||
| with: | ||
| dry_run: ${{ inputs.dry_run }} |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,3 +1,4 @@ | ||
| { | ||
| ".": "0.26.1" | ||
| ".": "0.26.1", | ||
| "Sources/LaunchDarklySessionReplay": "0.26.1" | ||
| } |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -3,13 +3,21 @@ | |
| "include-v-in-tag": false, | ||
| "packages": { | ||
| ".": { | ||
| "package-name": "swift-launchdarkly-observability", | ||
| "package-name": "LaunchDarklyObservability", | ||
| "release-type": "simple", | ||
| "versioning": "default", | ||
| "bump-minor-pre-major": true, | ||
| "extra-files": [ | ||
| "Sources/LaunchDarklyObservability/Version.swift", | ||
| "LaunchDarklyObservability.podspec", | ||
| "LaunchDarklyObservability.podspec" | ||
| ] | ||
| }, | ||
| "Sources/LaunchDarklySessionReplay": { | ||
| "package-name": "LaunchDarklySessionReplay", | ||
| "release-type": "simple", | ||
| "versioning": "default", | ||
| "bump-minor-pre-major": true, | ||
| "extra-files": [ | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. SessionReplay podspec extra-files path resolves to wrong locationHigh Severity In release-please, |
||
| "LaunchDarklySessionReplay.podspec" | ||
| ] | ||
| } | ||
|
|
||


There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tag collisions from disabled component-in-tag with multiple packages
Medium Severity
With
include-component-in-tag: falseandinclude-v-in-tag: false, both packages produce bare version tags (e.g.,0.27.0). Adding the secondSources/LaunchDarklySessionReplaypackage means both packages will generate identical tag names when at the same version, causing tag collisions in Git. The podspecs also reference:tag => s.version.to_s, so CocoaPods source resolution depends on correct, distinct tags per package. One of these settings likely needs to betruenow that there are two independently versioned packages.Additional Locations (1)
release-please-config.json#L14-L23