CI/CD in SourceCraft
CI/CD in SourceCraft
I try not to write technical posts, even though both my education and my experience give me every reason to do so. I assume they would not interest most of my audience. But I decided to run an experiment—perhaps I am wrong…
One of the co-founders of the project that Arturs Zantmans and I are working on insisted that we add our software to the Russian software register. In principle, the operating systems, database management system and technology stack we use were not subject to the restrictions, so there was no problem there. The only snag was GitHub: using it is a red flag when applying for inclusion in the register. We urgently needed to migrate somewhere else.
Of course, we could have gone to the trouble of deploying GitLab and configuring it for our needs. We had neither the time nor the energy, however, so without doing much research we decided to migrate to Yandex’s recently launched SourceCraft. The main argument in its favour was that all our infrastructure was already hosted in Yandex Cloud. We would not have to spend time signing contracts, registering, setting up billing accounts and so on.
Because we were coming from GitHub, CI/CD support was essential to us. SourceCraft had it, but in a somewhat limited form: there were no self-hosted workers. Those were promised for 5 June, when SourceCraft was due to enter Public Preview. Until then, all workers ran in the cloud.
We implemented the following process:
- Use cloud workers to build the Docker images we need;
- Store them in Yandex Container Registry;
- We could then deploy those images to Serverless Containers. Since we already had servers rented and configured in Yandex Cloud, however, for the time being we needed to deploy the images there instead;
- We wrote scripts for the servers that periodically check Container Registry for new images via cron. When they find one, they pull it and deploy it to the servers.
This was clearly a workaround, but we decided to see what the Yandex team would release on 5 June. Then we would choose between moving towards Serverless Containers and using self-hosted workers on our servers.
We did not have time to research the options properly, so I would like to ask my audience a couple of questions. Which ready-made solutions do you use? And what are the advantages and disadvantages of solutions from companies that are not subject to sanctions—Sber, VK and the like?
