-
Notifications
You must be signed in to change notification settings - Fork 2
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
Chore/verify release job #376
Conversation
verify-release: | ||
name: Verify Release | ||
runs-on: ubuntu-latest | ||
outputs: | ||
release: ${{ steps.verify-release.outputs.release }} | ||
steps: | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Verify Release | ||
id: verify-release | ||
uses: prefecthq/actions-verify-npm-package-bump@main | ||
# This job is used to build and publish the release if the verify-release job passes. |
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.
Can you explain why this is needed? I've gotten a bit removed from how this all works but the release step has always stopped without attempting to publish duplicate packages. Is this because the update PR step isn't aware that no new package was published? The action for that also has an output that says if a publish happened https://github.com/JS-DevTools/npm-publish.
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.
It's actually a bit weird but essentially we run this "release" workflow when two params are met:
- The package.json file has change
- A merge to main has occurred
The issue with this is that the package.json can change without a bump in the actual package version in the package.json. We cannot run a job based off of that level of granularity in a file change. So what this job does is verify that a version change has occured before moving onto the release step. Basically avoids these errors in the job: https://github.com/PrefectHQ/vue-compositions/actions/runs/7563179529/job/20595077477
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.
Would it help to change this to run off of the tag that gets pushed with the package change? That would prevent this from being triggered when just a package is updated or something.
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.
We def could move to only releasing when a tag is created. As it stands right now this release job actually creates the tag and 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.
Um it doesn't create the tag actually but rather uses an existing tag. When we do a release we locally run npm version
which does a few things
- Updates the package.json with the new version
- Generates the CHANGELOG.md
- Creates a single commit with those changes
- Adds a tag equal to the new version to that commit
Then we push that commit (or merge it). The workflow picks up that package.json was changed and might need to do a publish. Then after publishing it creates the github release using the same tag.
At least that's my understanding. Does that match what you're seeing?
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.
🤦 I'm way overcomplicating this. You are 100% correct. We can just use the publish output. Updating all now 🤦
Tested: https://github.com/PrefectHQ/vue-charts/actions/runs/7572241849 & https://github.com/PrefectHQ/vue-charts/actions/runs/7572230978