viperproject / viperserver

HTTP server that manages verification requests to different tools from the Viper tool stack.
Other
10 stars 17 forks source link

CI Improvements and Making Tests Great Again #35

Closed ArquintL closed 3 years ago

ArquintL commented 3 years ago

Upgrades CI scripts, fixes an annoying bug in getMessagesFuture that resulted in completing the returned future before all messages of a particular verification job have actually been received. This issue has lead to non-deterministic behavior of CoreServerSpec (at least in the CI).

The CI pipeline now includes making a nightly GitHub release as well as contains logic to trigger a stable release (i.e. the pipeline can be dispatched which then creates a draft release incl. artifacts). The artifacts are currently a fat ViperServer JAR and a skinny ViperServer JAR.

In addition, this PR fixes the README by replacing old Bitbucket links with links to the same stuff on GitHub.

ArquintL commented 3 years ago

TODOs

ArquintL commented 3 years ago

@aterga This PR is now ready for your review

ArquintL commented 3 years ago

I've just triggered the workflow to create a nightly release. In case you're wondering how it looks like, here it is: https://github.com/viperproject/viperserver/releases/tag/v-2021-05-09-1607

aterga commented 3 years ago

I've just triggered the workflow to create a nightly release. In case you're wondering how it looks like, here it is: https://github.com/viperproject/viperserver/releases/tag/v-2021-05-09-1607

This is great, BTW. If there was be a job that would simply packs the artifacts from ViperServer with the dependency binaries, we could entirely ditch Jenkins from the IDE infrastructure!

ArquintL commented 3 years ago

I've just triggered the workflow to create a nightly release. In case you're wondering how it looks like, here it is: https://github.com/viperproject/viperserver/releases/tag/v-2021-05-09-1607

This is great, BTW. If there was be a job that would simply packs the artifacts from ViperServer with the dependency binaries, we could entirely ditch Jenkins from the IDE infrastructure!

Thanks. I totally agree. This would be the next steps. The CI of this repo could focus on simply creating an artifact for Viper-IDE meaning that only Z3, Boogie, and the ViperServer JAR needs to be present. Would you download the latest Viper release and take the dependencies from there or should be configure and download e.g. a particular Z3 release from their GitHub repo (not sure whether this would work for Boogie too)