jthambly / update-quarkus Goto Github PK
View Code? Open in Web Editor NEWGitHub Action workflow to update the Quarkus version
License: Apache License 2.0
GitHub Action workflow to update the Quarkus version
License: Apache License 2.0
Example code generated through the Quarkus Maven plugin is also added to the project.
Ideally, this should not occur.
To fully support drop and go, it should compare what Quarkus files have been used in the past for when removing/diff/merging the file structure.
As checksums now exist, this is one step closer. #100
Need to collate a list of checksums going as far back as possible.
Originally posted by @jthambly in #13 (comment)
A test case should be included that will cause a branch to exist prior, then try and do an update - ideally it should detect this and skip the update process.
It would be ideal that CI verification is done with downloading and testing upgrades on Quarkus versions, both sequentially and by jumping multiple versions.
It could also be possible that this could be done when creating a GitHub Action #14
If a previous branch/pull request exists and has not been actioned yet it will fail.
Given by default, it checks once a week, if not previously actioned, it will fail weekly.
An error occurred when running as the Action:
Line 128 in 522c883
Action -> Generate checksums of latest base build
/home/runner/work/_temp/7bb8617a-ebaf-4eff-bda5-676229a8ef13.sh: line 7: ../../working-copy/.update/1.12.1.Final.sha256: No such file or directory
find: ‘standard output’: Broken pipe
find: write error
Error: Process completed with exit code 1.
Line 18 in ec528d9
There are instances of test branches that have been generated with an incorrect and later version.
I presume that this occurred through Quarkus Maven project generation.
It should not affect most verification tests, others will need to be carefully chosen.
Within the Action, there is a user-configurable section that should be migrated to the parent workflow. That is the project files to protect against replacement in the event that it cannot automatically determine which files are safe to delete.
Will need a way to determine if the checklist has loaded correctly.
Originally posted by @jthambly in #51 (comment)
With the following versions, we cannot generate the source to determine which files should be removed.
1.10.0.Final
1.11.0.Final
1.11.1.Final
Although we might not be able to use the above versions for testing, automated testing should also test for instances where it needs to proceed with the backup method of updating project files.
This will not be done as apart of the GitHub Action work, instead it will be associated with issue #13
For this to be achieved we will need a way to verify the filesystem post update.
Originally posted by @jthambly in #54 (comment)
When a new pom.xml is generated, duplicates exist.
This is due to additional extensions been added over the top of existing default ones.
The only way this can be fixed is to look up default entries and remove that from the extension list.
It will not break the build process, but it will warn about it.
Upon updating, an error is generated:
Failed to execute goal io.quarkus:quarkus-maven-plugin:2.0.1.Final:add-extension (default-cli) on project idp: Either the extension
or extensions
parameter must be set -> [Help 1]
It may be useful to collect checksums of project files created during verification upgrades.
This may provide useful functionality down the track, and even perhaps in determining which files to delete when it cannot automatically determine this #13.
It may also be useful as another verification step that upgrades are generating these files as expected.
If automatic testing fails, it may leave remnants of branches and pull requests.
It may be ideal to have a pre-clean to ensure that there are no leftover branches and PRs - only for test-related branches.
When determining the duplicates, the duplicates were removed (#5) based on the prefix - this has caused issues.
Need to also sort checksum listings so it can easily be compared to down the track.
Originally posted by @jthambly in #56 (comment)
As this work matures, it would be ideal to make it a GitHub action so that projects using this do not have to copy a long run of code.
If we are unable to determine pre-existing Quarkus files by means of re-generating the project files and taking checksums, then instead of removing anything that is not explicitly declared as a project file, we could generate a list of most likely Quarkus files.
To fully support drop and go, it should ideally pull out the existing extensions from the POM file.
Using XPath was not an option and hence a separate GitHub Action was created.
Although it may be messy, another way may be required in order to simplify the implementation by integrating this within our action instead.
The Action should be able to allow the user to specify the checklist in the parent workflow.
Need to migrate GIT_CHKLIST
When generating a blank project, it should detect if a checksum already exists, If it does, it should skip that part.
It is not skipping.
Due to changes in the usage of JUnit the update fails.
Cannot find a dependency matching 'io.quarkus:quarkus-junit5', maybe a typo
It has been observed #135 that checksums generated through the maven plugin may change?
Need to keep an eye on it.
Given that manual workflows can be triggered on other branches, it would be wise that the update feature also is able to handle this. This also may be required when using a custom Action.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.