|Anonymous | Login | Signup for a new account||2019-01-23 03:43 UTC|
|My View | View Issues | Change Log | Roadmap | Doomseeker Issue Support Ranking | Rules | My Account|
|View Issue Details|
|ID||Project||Category||View Status||Date Submitted||Last Update|
|0003467||Doomseeker||[All Projects] Suggestion||public||2018-08-27 08:41||2018-10-27 22:54|
|Target Version||1.2||Fixed in Version||1.2|
|Summary||0003467: Continuous Integration|
|Description||For 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 Information||Relevant 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 [^]
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. ¯\_(ツ)_/¯)
Test Commands (those can be run in parallel, so it’s preferable to put here stuff after the build)
~end of quote
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.
edited on: 2018-08-27 09:16
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.
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 [^]
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#!/ [^]
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.|
|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.
|Copyright © 2000 - 2019 MantisBT Team|