[Testing] Using Travis CI (or better alternative) for master/branch/PR testing

Iain Buclaw via D.gnu d.gnu at puremagic.com
Tue Jun 23 07:57:43 PDT 2015


On 23 June 2015 at 12:31, Iain Buclaw <ibuclaw at gdcproject.org> wrote:
> On 23 June 2015 at 10:15, Marko Anastasov via D.gnu <d.gnu at puremagic.com> wrote:
>> On Monday, 22 June 2015 at 08:56:54 UTC, Iain Buclaw wrote:
>>>
>>> So, I'd be willing to hear of alternatives:
>>>
>>> https://semaphoreci.com  - However CPU's given are 2, and time to build
>>> and run tests is limited to 60 minutes.
>>
>>
>> Hi Iain,
>>
>> Semaphore cofounder here. The first point is correct, however the 60 minute
>> limit applies to single build commands, not the entire build. If you can
>> compose your build of n commands, each < 60 minutes, it'll be fine.
>>
>> I invite you to give Semaphore a try. We'd love your feedback. And I'm here
>> for any questions you may have. :)
>>
>
> Hi Marko,
>
> Thanks for the update.  Yes, each command step is easily done in 20
> minutes.  I just have a few questions which I couldn't find answers
> for in the documentation.
>


OK, I went ahead and tried it out anyway, and was surprised to find
that everything went smoothly on the first (proper) build!  So I send
out my kudos to Marko on the ease of use (once I got around how the
interface works).

https://semaphoreci.com/ibuclaw/gdc

Total time is 36 minutes using -j2 - this is *significantly faster*
than Travis CI, so I am happy with that.  Will also give -j4 a go to
see if we can get any improvement over that, also going to try run our
unittester with -j2 to see if I hit an OOM related error.

Some things to note:
- I could not see a way to set environmental variables on a per-branch
basis, but maybe I just didn't look hard enough.

- Our command list in the build process is quite complex, we should
probably put parts of it into a dedicated build script.  So rather
than having to worry about which HOST or BUILD version of gcc we are
fetching, and trying to force that logic in the semaphoreci project
settings, just run some ./semaphoreci-setup.sh to get the correct
version of GCC our branch supports

Iain.


More information about the D.gnu mailing list