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

Christopher Lam christopher.lck at gmail.com
Tue Dec 8 09:08:17 EST 2020


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


More information about the gnucash-devel mailing list