[GNC-dev] build stats/badges for GNC maint, 3.6, 3.5 using Docker

John Ralls jralls at ceridwen.us
Tue Dec 8 11:55:20 EST 2020


We already have dockers running Linux--Arch Linux, Ubuntu-18.04, and Ubuntu-20.04--on Travis CI and Github actions. Feel free to borrow whatever you need from there to update yours, the docker files are in utils/ci.

Chris isn't looking for CI, he wants a Windows Docker image with all the dependencies set up as a shortcut to using gnucash-on-windows to create a build environment.

On the other hand *I* want to get a Github action for Windows CI set up but I'm stuck on accessing MSYS2. https://github.com/actions/virtual-environments/blob/main/images/win/Windows2019-Readme.md says that Mingw-w64 is preinstalled but doesn't provide any information on where. Do you know?

John Ralls

> On Dec 8, 2020, at 8:01 AM, Dale Phurrough via gnucash-devel <gnucash-devel at gnucash.org> wrote:
> If Linux builds only, then only two things needs to be done:
>   1. Update the existing 3.x solution at
>   https://github.com/diablodale/gnucash-dev-docker to compile for GnuCash
>   4.x. After someone understands the shared/common methodology, this is less
>   than a week of work. A single platform (e.g. Debian/Ubuntu) might even be
>   in hours.
>   2. Copy the documentation I wrote at that same repo and integrate it
>   into GnuCash docs -- adapting it for any stylistic changes. This is less
>   than a day of work if someone understands GnuCash doc process.
> On Tue, Dec 8, 2020 at 3:08 PM Christopher Lam <christopher.lck at gmail.com>
> wrote:
>> Sounds all complex... A simple Dockerfile to set up a dev environment
>> would be a good start! Or, if it already exists, documentation could be
>> improved - "how to start hacking and building after a bare-bones
>> linux+docker install".
>> On Tue, 8 Dec 2020 at 13:00, Dale Phurrough <dale at hidale.com> wrote:
>>> Hi. Anything is possible. ;-)
>>> Regarding Dockerfiles to build Gnucash for Linux, Windows, and Osx...
>>>   - Gnucash 4.x has several dependency changes and I don't have a
>>>   dockerfile to build them.
>>>   - Linux updates will be relatively straightforward. It is usually
>>>   only differences in dependencies on the four Linux forks (arch, debian,
>>>   rhel, suse)
>>>   - Windows build needs some work. I was about a week away from having
>>>   a full clean build. I partnered with the core gnucash team to have several
>>>   issues fixed in the windows build script/process -- issues unrelated to
>>>   Docker. More work is needed to make the build consistent, smooth and easy
>>>   to automate. The types of issues found/fixed were, e.g.: only works in a
>>>   specific directory or specific build machine, custom scripts not part of
>>>   the source code, etc.
>>>   - Osx is not directly possible. There is no mechanism for the OS
>>>   directly inside a Docker container to be Osx. You could have the Docker
>>>   container be Linux and within that install a full virtualizer like
>>>   virtualbox and within that virtualbox vm install Osx. I am not a lawyer and
>>>   I am not aware of the legality of using Osx in this way. There are also
>>>   cross-compilers -- using a compiler on Linux to build an Osx binary.
>>>   Unclear if this would be a reliable binary. Unclear how to test the binary
>>>   built.
>>> Here are a few things to consider regarding build/test pipelines:
>>>   - Azure Pipeline isn't worth the trouble
>>>   - Appveyor works generally well. It is the most capable for
>>>   cross-platform building.
>>>   - Github actions is a mix of the two. It has linux, win, and macos
>>>   build environments...but doesn't support docker on all of them.
>>>   - Github actions should work to build/test all Linux GnuCash
>>>   versions.
>>>   - Github actions does not (yet) support Windows Docker containers.
>>>   This is because the Github runners for Windows do not (yet) support running
>>>   Windows containers within them. See github action docs and
>>>   https://github.com/actions/virtual-environments/issues/1143
>>>   - Github actions is only "preview" for Mac. Issues will arise due to
>>>   the host itself and the gnucash build process.
>>>   - If you want to use Github actions to build Windows and Osx, you
>>>   can't do it today with a Dockerfile. It can only be done by running the
>>>   build directly on their VM not using Docker.
>>> I have the knowledge to do this work, but I don't currently have the
>>> bandwidth. I have this topic area and GnuCash reconciliation in my "queue";
>>> currently slotted for Feb/March 2021.
>>> An alternative...I could support someone. Sumit Bhardwaj expressed
>>> interest.
>>> --Dale
>>> On Sun, Dec 6, 2020 at 3:03 AM Christopher Lam <christopher.lck at gmail.com>
>>> wrote:
>>>> Hi Dale
>>>> Docker is now firmly entrenched in the industry; would you be able to
>>>> create a PR to set up the Dockerfile in the project root (or /util), and
>>>> add a few notes in the wiki to help complete docker newbies? e.g.
>>>> - how to set up a dev environment
>>>> - automate build and install
>>>> You may be aware we're moving away from travis to github actions.
>>>> C
>>>> On Wed, 17 Jul 2019 at 18:40, Dale Phurrough via gnucash-devel <
>>>> gnucash-devel at gnucash.org> wrote:
>>>>> Hi all. I finished the second stage of my project to automate
>>>>> build/test of
>>>>> GnuCash with Docker. See the badges, drill down to logs and individual
>>>>> test
>>>>> results at
>>>>> https://diablodale.github.io/gnucash-dev-docker/
>>>>> In previous emails you read about the easy consistent GnuCash build/test
>>>>> with Docker.
>>>>> https://github.com/diablodale/gnucash-dev-docker
>>>>>   - Updated with clearer categorized build dependencies in Dockerfiles
>>>>>   - Used these Docker containers to build/test across 14
>>>>> distrib/versions
>>>>>   of Linux
>>>>>   - Containers can be built locally or downloaded from DockerHub
>>>>>   - Automated build and tests using these containers via CI on AppVeyor
>>>>>   - Transformed ctest results through XSLT to JUnit format
>>>>>   - Exposed build and test results to badges
>>>>> Still to do
>>>>>   - Microsoft Azure CI Pipelines offers a free tier of CI that could be
>>>>>   used and 10x faster. I will explore their offering to see if it
>>>>> meets needs
>>>>>   - Windows builds. Thanks to JohnR and GeertJ, good progress has been
>>>>>   made. I have the responsibility for next steps. I need to return to
>>>>> my
>>>>>   testing to see what is missing or not functioning.
>>>>>   - Watch and evaluate AppVeyor. I exposed several bugs in the AppVeyor
>>>>>   offering as well as some limitations that required workarounds. I've
>>>>>   reported the issues to the AppVeyor team.
>>>>>   - Evaluate a switch to this docker build/test for GitHub PR testing.
>>>>> The
>>>>>   existing Travis process being used has aged and doesn't test a full
>>>>> suite
>>>>>   of functionality. With experience using AppVeyor and/or Microsoft
>>>>> CI, the
>>>>>   core GnuCash team can evaluate switching away from the old Travis
>>>>> method.
>>>>>   - Any related requests? Please send them to me.
>>>>> --Dale
>>>>> _______________________________________________
>>>>> gnucash-devel mailing list
>>>>> gnucash-devel at gnucash.org
>>>>> https://lists.gnucash.org/mailman/listinfo/gnucash-devel
> _______________________________________________
> gnucash-devel mailing list
> gnucash-devel at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-devel

More information about the gnucash-devel mailing list