GDC CI

Iain Buclaw ibuclaw at gdcproject.org
Mon Sep 7 09:20:21 UTC 2020


On Sunday, 6 September 2020 at 21:52:04 UTC, wjoe wrote:
> On Saturday, 5 September 2020 at 21:14:28 UTC, Iain Buclaw 
> wrote:
>> On Saturday, 5 September 2020 at 11:23:09 UTC, wjoe wrote:
>>> On Saturday, 5 September 2020 at 10:25:28 UTC, Johannes Pfau 
>>> wrote:
>>>> [...]
>>>
>>> Please forgive my confusion.
>>>
>>> There are 2 repositories, upstream GCC and 
>>> GitHub/D-Programming-GDC/gcc.
>>> The former isn't hosted on GitHub but on gnu.org.
>>> The latter is necessary for CI, because reasons, and is a 
>>> mirror of the upstream git repository.
>>> Development is done in the upstream repository.
>>> Because of that we can't put our CI configs into the project 
>>> root.
>>> Thus the GitHub mirror is required for those CI providers 
>>> that don't support a custom configuration location.
>>> But it could be done with the upstream repo otherwise, unless 
>>> the CI service only works with projects hosted on GitHub - 
>>> Cirrus CI for instance.
>>>
>>> Is that correct ?
>>>
>>
>> That sounds about right.
>>
>> The only way you'd be able to test the upstream GCC repository 
>> directly is by doing periodic builds, rather than builds based 
>> off triggers.  The CI logic would have to live in a separate 
>> repository.  For convenience, this would be on GitHub.
>
> Periodic builds sound like what Cirrus CI calls cron builds.
> But if the repository needs to be forked for CI it's kind of 
> periodic as well if the commits are only merged in periodically.
>
> Currently I'm looking into building a docker container which 
> can run a GDC build. Because Cirrus CI supports Dockerfile/s 
> directly and every other CI seems to run its tasks/jobs inside 
> of a docker container this seems like a viable approach and can 
> be extended with the ARM targets mentioned in your item number 
> 3.

In case it saves some work...

Baseline dependencies for Debian/Ubuntu are:

autogen autoconf automake bison dejagnu flex libcurl4-gnutls-dev 
libgmp-dev libisl-dev libmpc-dev libmpfr-dev make patch tzdata 
xz-utils binutils libc6-dev gcc g++

Baseline dependencies for Alpine are:

autoconf automake bison curl-dev dejagnu flex gmp-dev isl-dev 
make mpc1-dev mpfr-dev patch tzdata xz binutils musl-dev gcc g++

Iain.


More information about the D.gnu mailing list