GDC CI

wjoe invalid at example.com
Wed Sep 16 09:33:05 UTC 2020


On Tuesday, 15 September 2020 at 18:49:48 UTC, Iain Buclaw wrote:
> On Tuesday, 15 September 2020 at 16:05:53 UTC, wjoe wrote:
>> On Tuesday, 15 September 2020 at 16:00:56 UTC, wjoe wrote:
>>> I've added the above tasks and they are reported to have been 
>>> completed successfully in the Cirrus summary.
>>> However, on a closer look I can spot multiple failures or 
>>> files/directories which can't be found.
>>> - Some 12 failed tests as well as 10 unresolved test cases in 
>>> the unittest step.
>>> - The build package step failed with: cd ./libcc1: no such 
>>> file or directory.
>>
>> This is the package function for reference:
>>
>> build_package() {
>>     cd build || exit 1
>>     make install || exit 1
>>     tar -cJf gdc-${build_host}.txz /usr || exit 1
>> }
>>
>> Links for your convenience.
>> [1] https://github.com/w-joe/gcc/blob/master-ci/buildci.sh
>> [2] https://github.com/w-joe/gcc/blob/master-ci/.cirrus.yml
>
> Note the comments in the build function, only the dependencies 
> of the C++ and D libraries are built. So you'll need to do 
> `make all` in order to cover anything that was deliberately 
> skipped.

Does that mean that building with build_bootstrap="enabled" is 
insufficient ?
Because I exported that variable in the Cirrus CI configuration 
and set it to 'disabled' for GDC and Unittest tasks and to 
'enabled' for the Package task.

Packaging in the Unittest task didn't work unfortunately because 
building that with bootstrap enabled exceeded the 2h time limit.

So now there are 3 tasks.
- Build GDC testsuite
- Build Unittests
- Build Package task

At the moment I made the Package task depend on the Unittest 
task, but GDC and Unittest run in parallel.
I guess best practices would ask to make Unittest depend on GDC 
to go easy on resources.
However, that would blow up the build cycle to something over 
3.5h.

The stats right now are:
- Docker container builds in less than 5 minutes
   It's automatically cached by CirrusCI i.e. this only applies if 
the Dockerfile changed.
- GDC testsuite takes about 45 minutes with 
build_bootstrap=disabled
- Unittests take a little more than 1 hour with 
build_bootstrap=disabled
- Package task took 1:45h with build_bootstrap=enabled
   That was 1:15h for building, and
   a little less than half an hour for the package step (make 
install && tar)

For a total of 2:46h


More information about the D.gnu mailing list