Hey everyone,
Previously I mentioned that I was working on automated website builds
for the Calcite (and avatica and avatica-go subwebsite) Website [1] and
I wanted to give you guys some updates.
The initial attempt was to use the git-websites jenkins node to build
the site, however I ran into a few issues:
- I couldn't get a Jenkins build to trigger only when a new tag that
matches a regex is pushed.
- The jenkins build can sometimes be unreliable and not trigger.
Recently, Github released Github Actions, which allows not just CI/CD,
but the ability to run any piece of code in Javascript, a docker
container or a VM when an event triggers it [2]. The newest beta of
Github Actions is available to all projects under the ASF organization
on Github, so do check it out, it's pretty cool!
I have successfully implemented automated site builds using Github
Actions in the test-site branch [3]. The builds now trigger correctly
and the only missing piece left is to let Github Actions have access to
the token to push to the Calcite-site repository. This is currently
tracked in INFRA-18874 [4].
Github Actions can also be used for CI/CD, so it's a good candidate for
replacing Travis and Appveyor as Github also provides Windows nodes for
building. I did some initial work to test the waters with migrating
Avatica-Go [5]. Unfortunately, it seems to be missing some things, such
as the ability to set the command when running a service container. I am
sure these are things that will definitely be fixed/implemented in the
future as Actions is still in beta.
From my testing, Github Actions builds are really fast (9 minutes to
build the Javadoc for Calcite), so it's something we should consider for
Calcite + Avatica + Avatica-Go in the future.
Any thoughts?
I've also started some discussion regarding Github Actions on the build@
list for more general discussion [6].
Francis
[1]
https://lists.apache.org/thread.html/a86bf62901f4032027d7a247c33aa22e0f74ad423914967a86f769b8@%3Cdev.calcite.apache.org%3E
[2] https://github.com/features/actions
[3]
https://github.com/apache/calcite/commit/eb44ae0ae6f9e5197067452f036bd07c92b4c92a
[4] https://issues.apache.org/jira/browse/INFRA-18874
[5]
https://github.com/apache/calcite-avatica-go/commit/a83e09408aeac7706b2a482d704e5d1c758eafb2
[6]
https://lists.apache.org/thread.html/246c44267ddaede1cda516c4c825a3868cf617dbe09a6106a8a29d92@%3Cbuilds.apache.org%3E