Alternatives to travis-ci
Petar
Petar
Fri Dec 11 10:59:30 UTC 2020
On Thursday, 10 December 2020 at 16:30:43 UTC, Basile B. wrote:
> On Thursday, 10 December 2020 at 11:52:41 UTC, M.M. wrote:
>> On Thursday, 10 December 2020 at 11:42:41 UTC, Mathias LANG
>> wrote:
>>> As many of you might be aware already, travis-ci is killing
>>> their open-source plans.
>>> They haven't sunset it yet,, but they introduced a set of
>>> restrictions that makes them completely uncompetitive and
>>> impractical to use compared to other services on the market.
>>>
>>> [...]
>>
>> Thank you for sharing and suggesting alternatives. Is GitLab
>> CI similarly easy/friendly/suitable for D? Does anyone use it?
>
> Gitlab.org (so not self-hosted version) CI is only free for
> linux. osx and windows runners require to buy "minutes".
>
> Then it is as suitable a any other CI service that supports
> docker images, meaning that D is not supported natively (but
> really the docker image solve this issue).
>
> On top of that you have facilities to release binaries, deploy
> packages or publish a static website.
>
> It has always been stable and reliable for me but I run it
> let's say 5 times per day top.
>
> To make you an idea, see https://gitlab.com/basile.b/dlang-ci.
And for a bit more advanced example, at work we have a project
that includes two micro-services written in D and hosted on
GitLab with the following features / techniques:
* Using a custom docker+buildx docker image: [0]
* Mono-repo project organization via dub subpackages
* Each service is built and deployed as a separate runner image,
but the build dependencies are shared in a common dependencies
builder image
* We use GitLab Container Registry to push images and to pull
cache from
* Multi-stage Dockerfile build which has caching of dub
dependencies and separate builder and run-time environments [1]
* docker buildx bake is used to automate the docker image build,
tag and push processes [2]
* docker buildx bake targets + GitLab CI matrix allows defining
jobs for each micro-service docker image without repetition [3]
I want to thank the LDC team and especially Mathias LANG for
their work on making D on Alpine docker images possible.
[0]:
https://gitlab.com/jarvis-network/base/container-images/docker-buildx
[1]:
https://gitlab.com/jarvis-network/apps/exchange/price-feed/-/blob/1fa5624964165b34b987ede0728eb71bdb59d403/Dockerfile
[2]:
https://gitlab.com/jarvis-network/apps/exchange/price-feed/-/blob/1fa5624964165b34b987ede0728eb71bdb59d403/docker-bake.hcl
[3]:
https://gitlab.com/jarvis-network/apps/exchange/price-feed/-/blob/1fa5624964165b34b987ede0728eb71bdb59d403/.gitlab-ci.yml
More information about the Digitalmars-d
mailing list