Description
The process takes several steps:
- Run test, test_bootstrapped, and community_build on GH Actions on each push and PR event. Also, run sbt and java11 tests on tags (probably won't happen until next release). The runs happen on our machines.
- Release nightly builds from GitHub Actions. Generate the documentation for them. Disable CRON job that triggers the nightly builds on Drone and use GitHub Actions scheduler instead.
- Make Dotty releases a responsibility of GitHub Actions, transition their execution on our machines and ditch Drone CI altogether.
- Implement SBT plugin release capability.
Cleanup work to be done after the migration is finished:
- Drop "update" command from tests. It was needed for the caching of jars which involved generating a new docker image on each dependency update. GH Actions uses a different caching strategy so "update" becomes unneeded.
- Upload a new docker image, without the cache, to LAMP's Dockerhub organization. Currently, the one uploaded to my account is used.
- Describe the setup in a separate repo, similarly to how it is done with lampepfl/dotty-drone for Drone.
- Rerun failing community tests a few times if they fail to mitigate concurrency effects. Is relevant for the Intent framework which is prone to spontaneous failures due to exceeded timeouts.
- Caching: check the logs of the jobs and ensure they don't do unnecessary fetching from the Internet, everything should be cached.
- Abstract the cleanup step into a shell script.