[GNC-dev] build stats/badges for GNC maint, 3.6, 3.5 using Docker
Dale Phurrough
dale at hidale.com
Tue Dec 8 11:01:40 EST 2020
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
>>>>
>>>
More information about the gnucash-devel
mailing list