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

Dale Phurrough dale at hidale.com
Tue Dec 8 08:00:18 EST 2020


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
>>
>


More information about the gnucash-devel mailing list