Zandronum Chat on our Discord Server Get the latest version: 3.1
Source Code

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0003467Doomseeker[All Projects] Suggestionpublic2018-08-27 08:412018-10-27 22:54
ReporterZalewa 
Assigned ToZalewa 
PrioritynormalSeverityminorReproducibilityN/A
StatusclosedResolutionfixed 
PlatformLinuxOSOS Version
Product Version1.1 
Target Version1.2Fixed in Version1.2 
Summary0003467: Continuous Integration
DescriptionFor the purpose of automatic verification we could introduce
"Continous Integration" builds in our repository. This basically works by performing automated builds for every commit that is pushed into the repository (ideally, before they get merged). This way we will know breaking commits sooner.

In perfect environment, this should perform builds on all supported platforms (Windows, Mac, Linux), but since we're a small open-source project, we should aim for whatever gives us at least some substantial benefit but keeps the required effort at low level.

What we currently need is just to build the program with every commit and verify that it got compiled correctly. Feedback must be provided to the devs somehow.
Additional InformationRelevant work has already been done in this PR:'https://bitbucket.org/Doomseeker/doomseeker/pull-requests/15/added-config-file-for-bitbucket-pipelines/diff [^]'

and this commit:'https://bitbucket.org/Doomseeker/doomseeker/commits/a89b542d406fa300d9a82a31afcabc5d9b6b12da [^]'
Attached Files

- Relationships

-  Notes
User avatar (0019433)
Zalewa (developer)
2018-08-27 08:43
edited on: 2018-08-27 08:44

Since Travis appears to be Github only, we either need to clone the repo to Github and do CI there or use something else.

Research done by Pol M:

"""
    These days I’ve been looking for a Travis-like option to be able to see if everything is compiling properly. I’ve tried two:

    * Pipelines: this is the default option for bitbucket, and it’s quite simple to set up. It supports Docker. The only disadvantage is that in the free plan we would have only 50 min of compilation time. While I’ve taken the time down to a minute, that would only leave us with 50 goes a month.
    
    * Codeship: Codeship has two ways of working, the basic mode which doesn’t support Docker. Regardless of that, it achieves some really good times (lower a minute, around 35 seconds). There’s also the Pro mode, which while it does support Docker, it is a lot slower (4 min) and in my personal experience (Maybe I’m just really bad at configuring it) doesn’t conserve files between steps. There is a thing called “volumes” but seemed to not work adequately. I’ll probably give it another try in the future, but I don’t have much more time to put in for the moment. In both cases, we would have 100 compilations a month. I’ll leave here the commands for the basic mode:

    Setup Commands (you will see I used sudo. It’s not a mistake, It did not build without root permissions. ¯\_(ツ)_/¯)


    mkdir build
    cd build
    sudo cmake ..
    sudo make -j$(nproc)


    Test Commands (those can be run in parallel, so it’s preferable to put here stuff after the build)


    sudo make install


"""

~end of quote

User avatar (0019434)
Zalewa (developer)
2018-08-27 08:46
edited on: 2018-08-27 08:47

I’ve added the commit here:'https://bitbucket.org/Doomseeker/doomseeker/commits/a89b542d406fa300d9a82a31afcabc5d9b6b12da [^]'

Relevant stuff to know:

1. The first "doomseeker" in “doomseeker/doomseeker-build:latest” is doomseeker account in Docker Hub. Accounts there are tied to e-mail addresses. For now I have used one of my private e-mail accounts. Maybe we should have a more official one. But to whom would the emails from this account be forwarded? Me and Blzut both? And where would it be hosted? On drdteam.org?

2. Password to the Docker Hub account will be forwarded to Blzut in a more “private” means.

3. "doomseeker-build:latest" image was build from a modified version of Dockerfile located in our repository. I basically removed the COPY and WORKDIR instructions, leaving only the apt-get that installs the necessary build dependenies. Then I pushed the image to the Docker Hub.

4. Pipelines have been enabled, though we need to keep the free time limit in mind. Given the amount of development happening here, it’s possible that those 50 free minutes per month will be enough for us. If not, then, well, "something" is better than "nothing", and builds suddenly stopping until next month starts will be something we'll have to accept.

User avatar (0019435)
Zalewa (developer)
2018-08-27 09:08
edited on: 2018-08-27 09:16

Quote

1. [...] Accounts there are tied to e-mail addresses. For now I have used one of my private e-mail accounts. Maybe we should have a more official one. But to whom would the emails from this account be forwarded? Me and Blzut both? And where would it be hosted? On drdteam.org?

2. Password to the Docker Hub account will be forwarded to Blzut in a more “private” means.

Scratch that. It appears Docker Hub has a built-in support for organizations, therefore a specialized account is not needed. Thankfully, accounts can be converted to organizations, which I did.

Link:'https://hub.docker.com/u/doomseeker/ [^]'

User avatar (0019453)
Zalewa (developer)
2018-08-30 10:51

There was some problem with caching which resulted in incorrectly broken builds on correct commits. It appeared that the caching problem was with the output of Qt's moc. I have "fixed" this by disabling the caches:'https://bitbucket.org/Doomseeker/doomseeker/commits/cb5f9b81945e37d71312986ee95d3e5024c61d0f [^]'

Also, the classic:'https://martinfowler.com/bliki/TwoHardThings.html [^]'
User avatar (0019454)
Zalewa (developer)
2018-08-30 10:55

It appears that the pipelines are working as expected (for now). I'm somewhat unsure what will happen when we run out of the 50 free minutes-per-month.

Regardless, if builds suddenly stop for a remainder of a month I don't think the harm caused by that is currently worth figuring out a more convoluted solution. Pipelines are good enough for us.

Doomseeker's pipelines:'https://bitbucket.org/Doomseeker/doomseeker/addon/pipelines/home#!/ [^]'

Issue Community Support
This issue is already marked as resolved.
If you feel that is not the case, please reopen it and explain why.
Supporters: No one explicitly supports this issue yet.
Opponents: WubTheCaptain

- Issue History
Date Modified Username Field Change
2018-08-27 08:41 Zalewa New Issue
2018-08-27 08:43 Zalewa Note Added: 0019433
2018-08-27 08:44 Zalewa Note Edited: 0019433 View Revisions
2018-08-27 08:46 Zalewa Note Added: 0019434
2018-08-27 08:47 Zalewa Note Edited: 0019434 View Revisions
2018-08-27 09:08 Zalewa Note Added: 0019435
2018-08-27 09:16 Zalewa Note Edited: 0019435 View Revisions
2018-08-28 03:40 WubTheCaptain Status new => confirmed
2018-08-30 10:51 Zalewa Note Added: 0019453
2018-08-30 10:55 Zalewa Note Added: 0019454
2018-08-30 10:55 Zalewa Status confirmed => resolved
2018-08-30 10:55 Zalewa Fixed in Version => 1.2
2018-08-30 10:55 Zalewa Resolution open => fixed
2018-08-30 10:55 Zalewa Assigned To => Zalewa
2018-09-29 14:15 WubTheCaptain Product Version 1.2 => 1.1
2018-10-27 22:54 WubTheCaptain Status resolved => closed






Questions or other issues? Contact Us.

Links


Copyright © 2000 - 2024 MantisBT Team
Powered by Mantis Bugtracker