[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
Dale,
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?
Regards,
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