-
Notifications
You must be signed in to change notification settings - Fork 12
Add GitHub Actions workflow for automated iOS release to CocoaPods #73
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
base: master
Are you sure you want to change the base?
Conversation
|
@arkaza-nr |
|
@arkaza-nr Currently, it's expected that new release is created manually. Can you refer to VideoJs release and include it so that when a branch is merged to master. There is a release done automatically. |
.github/workflows/ios-release.yml
Outdated
|
|
||
| jobs: | ||
| release: | ||
| runs-on: macos-latest |
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.
is there any specific release for macos-latest ?
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.
There's no need for macOS here. "ios-release.yml" workflow only does git operations and Node.js tasks. Changed to ubuntu-latest for faster execution and lower cost. The "ios-publish.yml" workflow still uses macos-latest since it needs CocoaPods.
.github/workflows/ios-release.yml
Outdated
| echo "" | ||
|
|
||
| VERSION="${{ steps.get_version.outputs.version }}" | ||
| MAX_ATTEMPTS=20 |
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.
If it fails to go through within 20 tries. Is there a way we can re run workflow and expect this to pick up. What I mean is - is this workflow idempotent ?
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.
Yes, we can re-run the workflow and it will safely pick up where it left off. No duplicate tags or releases will be created. Pod publish will fail if already published, but this is safe and expected.
RELEASE.md
Outdated
|
|
||
| ## Testing the Workflow (Without Publishing) | ||
|
|
||
| You can safely test the workflow on non-master branches: |
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.
This is not needed in release.md
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.
removed.
|
@arkaza-nr please confirm, Currently we are needed to add assets to release. Check this. Check if this can be done too. This is a manual step atm. |
## [4.1.0](4.0.1...4.1.0) (2025-12-15) ### Features * add automated release workflow ([77845b8](77845b8)) * add automated release workflow ([ff3cdd6](ff3cdd6)) * add automated release workflow ([46eacd1](46eacd1)) * add automated release workflow ([9eab955](9eab955)) ### Bug Fixes * add conventional-changelog-conventionalcommits dependency ([3809333](3809333)) * correct YAML syntax for PR body and commit message ([82cb673](82cb673))
|
🎉 This PR is included in version 4.1.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
a79fd2f to
01993c1
Compare
…:newrelic/video-agent-iOS into user/arkazakumari/ios-release-automation
chore(release): 4.1.0
…:newrelic/video-agent-iOS into user/arkazakumari/ios-release-automation
chore(release): 4.1.0
RELEASE.md
Outdated
| 6. Creates a git tag (`vX.Y.Z`) | ||
| 7. Creates a GitHub Release with installation instructions | ||
| 8. Verifies all pods are published | ||
| 9. Deletes the release branch (cleanup) |
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.
This step is unwanted since it always better to leave a trail in automation so that dev can review back in the future.
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.
done, removed branch clean up step.
| git commit -m "chore: update dependencies" | ||
| ``` | ||
|
|
||
| ## Release Process (Step by Step) |
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.
"Workflows" and "Release Process (Step by Step)" are duplicating content. We could just keep "Release Process (Step by Step)"
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.
done
RELEASE.md
Outdated
| - Creates git tag `vX.Y.Z` | ||
| - Creates GitHub Release |
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.
creating GitHub Release should create git tag automatically. If these 2 steps are seperate then only GitHub Release can be present
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.
Yes, we aren't creating tag manually. It's created through GitHub Release only. Updated RELEASE.md file with the same.
RELEASE.md
Outdated
| ### Branch Protection | ||
|
|
||
| Recommended branch protection rules for `master`: | ||
|
|
||
| - Require pull request reviews | ||
| - Require status checks to pass | ||
| - Require branches to be up to date | ||
| - Do not allow bypassing the above settings | ||
|
|
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.
this section seems not required
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.
Removed this section.
RELEASE.md
Outdated
|
|
||
| --- | ||
|
|
||
| Last updated: December 2025 No newline at end of file |
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.
this is not required since it's version controlled
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.
removed.
RELEASE.md
Outdated
| 4. **Automatic Cleanup** | ||
| - Release branches are deleted after successful publish | ||
| - Keeps repository clean | ||
| - Clear lifecycle from creation to deletion |
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.
this is not needed in my opinion
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.
removed branch cleanup step.
|
|
||
| ### Key Principles: | ||
|
|
||
| 1. **One Branch = One PR** |
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.
please add preferably it's develop in normal development workflow
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.
added notes for normal development workflow.
## [4.1.0](v4.0.1...v4.1.0) (2025-12-23) ### Features * add automated release workflow ([77845b8](77845b8)) * add automated release workflow ([ff3cdd6](ff3cdd6)) * add automated release workflow ([46eacd1](46eacd1)) * add automated release workflow ([9eab955](9eab955)) * automate iOS release process with semantic versioning ([2b846de](2b846de)) * implement stable one-shot PR release workflow ([7f711db](7f711db)) * test release workflow ([4dc66b7](4dc66b7)) * test release workflow after tag cleanup ([01993c1](01993c1)) * test stable one-shot PR workflow ([903711c](903711c)) * tetsing publish workflow ([021c894](021c894)) * trigger release workflow ([f89705c](f89705c)) ### Bug Fixes * add conventional-changelog-conventionalcommits dependency ([3809333](3809333)) * add label to release PR ([03c6932](03c6932)) * add label to release PR ([8cfb755](8cfb755)) * changelog not generated in dry run mode ([4de8065](4de8065)) * correct YAML syntax for PR body and commit message ([fb8fb14](fb8fb14)) * correct YAML syntax for PR body and commit message ([82cb673](82cb673)) * remove tag craetion through semantic release ([9769857](9769857)) * remove unnecessary manual tag creation step ([56e88c0](56e88c0)) * semantic tag creation ([ad9679d](ad9679d)) * tag creation should happen during release creation ([2486db0](2486db0)) * tag creation with semantic ([29ee1ae](29ee1ae))
Adds automated release workflows for iOS Video Agent SDK using semantic-release and GitHub Actions.
Changes:
Testing
user/arkazakumari/ios-release-automationbranch with git push.Release Workflow Run: https://github.com/newrelic/video-agent-iOS/actions/runs/20316223199/job/58360440802
Release PR: #86
NOTE:
The
ios-publish.ymlworkflow could not be fully tested on theuser/arkazakumari/ios-release-automationbranch due to a GitHub Actions limitation:GitHub only recognizes and triggers workflows that exist on the default branch (master).
ios-release.ymlworkflow was testable because it triggers onpushevents, which registered it with GitHub when we pushed to the test branchios-publish.ymlworkflow triggers onpull_request: closedevents, but GitHub never registered it because workflows on non-default branches are not automatically discovered by GitHub. Even with the workflow file present and PRs being merged with thereleaselabel, GitHub couldn't execute it.Once merged to master, the workflow will be automatically registered by GitHub and will trigger on future release PR merges.