-
Notifications
You must be signed in to change notification settings - Fork 1
Implement CI pipeline #11
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
Conversation
fioan89
commented
Feb 28, 2025
•
edited
Loading
edited
- support Changelog files and automatic update after a release
- workflows to build and publish release drafts
- support for automatic dependencies update via Github's dependabot.
- initial changelog file. - gradle plugin to automatically manage the changelog (ex: replacing unreleased tag with an actual version at release time)
- builds the zip and runs the unit tests
- jar artefacts should be grouped under a folder whose name acts as a plugin id, which means the version should not be present in the name. - with this patch we differentiate between plugin name (root folder) and plugin id (second level folder)
- patch unreleased section in the changelog with version and release date - publish the plugin to the marketplace (disabled for now) - promote draft artefact as released
- upgrades gradle dependencies and plugins - upgrades github actions - runs weekly
- kotlin and serialization plugins depend on the minimum targeted Toolbox version
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.
LGTM except a few comments
- dependency-name: "org.jetbrains.kotlin.jvm" | ||
- dependency-name: "org.jetbrains.kotlin.plugin.serialization" | ||
- dependency-name: "com.google.devtools.ksp" | ||
# these can have breaking changes |
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 we detect the breaking changes via some tests in the PRs. I would prefer an auto update over a manual one if we can detect the breaking changes.
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.
some of the breaking changes (like for example breaking changes in the Toolbox api) can be detected at compile time. Basically the CI pipeline will fail and we can't merge the upgrade. However, the kotlin dependencies will be harder to detect, the compile can work fine but at runtime things might break because of the changes in the kotlin stdlib (just an example) shipped with Toolbox. We would need some end to end tests to detect these kind of changes. :(
.github/workflows/build.yml
Outdated
CHANGELOG="${CHANGELOG//'%'/'%25'}" | ||
CHANGELOG="${CHANGELOG//$'\n'/'%0A'}" | ||
CHANGELOG="${CHANGELOG//$'\r'/'%0D'}" | ||
echo "::set-output name=version::$VERSION" |
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.
GitHub now recommends writing to GITHUB_OUTPUT
instead.
https://docs.github.com/en/actions/writing-workflows/choosing-what-your-workflow-does/passing-information-between-jobs#example-defining-outputs-for-a-job
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.
Good catch. I will fix this everywhere.
- set-output is deprecated
- github.repository instead of the {owner}/{repo}
- backticks command substitution is deprecated
- by saving the content into an intermediate file