Hi all,

I spent a bit of time trying to get a project of mine to build in Github
Actions with a Qt installed via the new online installer.

I used Volker's script as a base, modified it a bit, and created a github
workflow that installs Qt 5.15.1 essentials package.
The workflow then builds a qmake app project and publishes a
macdeploy'ed archive as a Github artifact.

I also got some inspiration from qt-creator's and Cristian's ccache GA
workflows.
So credit goes to Volker, Cristian, and anyone that worked on the creator
workflow.

Here's the gist of what I have so far:
https://gist.github.com/alcroito/549d47b4d961936a24a518aaada685f3

To make the online installer work in the CI setting, i first downloaded it
locally and logged in with my account,
extracted the created JWT token from ~/Library/Application\
Support/Qt/qtaccount.ini
and saved it as a secret that's set as an environment variable in the CI.

Not sure for how long the token is valid though.

The workflow in the linked gist also uses GA's caching action, to cache the
installed Qt (so as not to hammer Qt's mirrors).
It also reduces the overall Qt installation time:

              initial install time    restore from cache    cache size
Linux        2m 58s                  35s                           695MB
Windows   4m 27s                 1m 5s                       783MB
macOS      3m38s                  22s                           590MB

Hope the gist proves useful to someone.

I'm pondering continuing work on the installer script as well as the
build_with_qmake script, and perhaps package them as GA actions
if it's feasible and useful.


On Wed, Sep 16, 2020 at 5:25 PM Volker Hilsheimer <volker.hilshei...@qt.io>
wrote:

> > On 16 Sep 2020, at 17:05, Thiago Macieira <thiago.macie...@intel.com>
> wrote:
> >
> > On Wednesday, 16 September 2020 03:39:58 PDT Volker Hilsheimer wrote:
> >> I’ve recently been doing a bit of work to automate the testing of the
> online
> >> installer and the Qt packages through minicoin [1] recently; check
> >>
> >>
> https://git.qt.io/vohilshe/minicoin/-/tree/master/minicoin/jobs/install-onli
> >> ne
> >>
> >> for a cmake script that downloads the Qt Online installer and installs
> the
> >> latest Qt 6 snapshot, on any host platform Qt supports.
> >>
> >> I’m running things regularly on local and cloud-hosted VMs running
> >> Windows10, macOS, and Ubuntu. FWIW, the xdotool stuff is only needed
> >> because I also want to run some basic tests that require a user session.
> >
> > Thanks, Volker
> >
> > The script is very understandable. When I have the time, I'll take a
> look at
> > setting up a GitHub Action for installing Qt on their Linux and Mac
> hosts. I
> > really need to get away from Travis, since that is taking 2-3 days to
> test a
> > pull request.
> >
> > One question: the downloads are currently anonymous. I understood from
> earlier
> > in this thread that would not remain the case. Did I misunderstand or is
> that
> > still a change to come?
> >
> > --
> > Thiago Macieira - thiago.macieira (AT) intel.com
> >  Software Architect - Intel DPG Cloud Engineering
>
>
> The download in the cmake script (and thanks to Christian Adam for some of
> the ideas to it) just pulls down the online installer.
>
> The online installer then downloads the actual packages, and expects your
> qtaccount.ini file to have the credentials and license information.
>
> The other scripts take care of that, and are part of how jobs are designed
> in minicoin: the pre-run script runs on the host, takes your local
> qtaccount.ini file, and puts it into the job; minicoin uploads the entire
> job directory ot the VM; the “main” scripts then run on the guest, and put
> them where the installer expects them.
>
> Cheers,
> Volker
>
>
> _______________________________________________
> Development mailing list
> Development@qt-project.org
> https://lists.qt-project.org/listinfo/development
>
_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to