Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
By creating this pull request you agree to the terms in CONTRIBUTING.md.
https://github.com/Infineon/.github/blob/master/CONTRIBUTING.md
--- DO NOT DELETE ANYTHING ABOVE THIS LINE ---
CONTRIBUTING.md also tells you what to expect in the PR process.
The release script is now refactored for reusability across cores.
The functionality is split in 3 main classes:
RelelaseConfig
-> Handles the core specific parametersCorePackage
-> Handles the generation of the .zip file with all the necessary sourcesPackageIndex
-> Handles the generation of the package index JSON manifest used to install 3rd party cores.Additionally the
PackageVersion
supports release versioning and ensures consistency with core metafiles versioning.With all of them the main function
build_release_assets
which given a config.yml file and the Arduino core repository will create the core source .zip archive and the JSON package index.An example of the config.yml file -> https://github.com/Infineon/arduino-core-psoc/blob/reuse-ext-workflow/package/config.yml
And finally, a class
PackageParser
implement a CLI tool to pass the necessary arguments to the packager.The CI/CD release support is provided in the .github/workflows/release.py.
Here is also an example of how we can reuse the workflow in the arduino-core-psoc:
https://github.com/Infineon/arduino-core-psoc/blob/reuse-ext-workflow/.github/workflows/release.yml
Some improvements already that can be considered:
config.yml
params could be automatically extracted from the repo itself by default. That could make make the config.yml optional.