During the Contribution Day in Berlin @davidspiola and I discussed our “CI setup” with @mroberts, who provided very helpful insights and an “outside view” that triggered quite some thoughts. This tries to summarize what we came up with and outline a few steps into the future…
Any errors and omissions are mine, feel free to correct and amend!
The following is based on this flipchart photo from Berlin, only slightly helpful… (2.1 MB) and my imagination.
Vision
Anyone in the Neos team can confidently release a Neos or Flow version without fear of breaking things or the need for a lot of knowledge.
The release process as well as any other automated processes are working as invisible as possible while being very transparent about how they work and what they, any results can be traced back to the “magician” easily.
Goals
The current release process is not as automated as we imagined it to be at some point (see Release process topic sprint, Hamburg, January 15th/16th 2019 and https://www.neos.io/blog/off-to-a-better-neos-release-process.html), but by now I would not follow that path any longer.
The part that is and should be automated is the actual branching and tagging, and I dare say it works fine by now. It has some issues, still, but those can be tackled “small-scale”.
We looked at what we have and found:
From there we came to the conclusion that other aspects need consideration and identified some things we could do, that lead to other things we could then do to…
- ease understanding of what happens where in the project
- make it easier for others to contribute to automation, lower entry barrier
- lower the complexity by having less “moving parts” to ease maintenance and development
- save time needed to keep infrastructure updated and secure
- save resources & money
Next steps
Ultimately this lead us to the following steps:
- Look into Jenkins jobs to find an order for migrating them to GH Actions (see Jenkins job structure)
- Move them to GH Actions to eventually get rid of Jenkins
- Move Matomo from Jenkins machine to Discourse machine
- Remove now unused machine to make Howto: Keeping our DigitalOcean servers updated easier
Along the way we should look into the CircleCI setup used for the Neos UI to see if we can get rid of that, to have removed another tool, but that’s not urgent (as the service is “free” in monetary and maintenance.)