[Freemint-list] FreeMiNT continuous integration

OL o.l at lutece.net
Fri Apr 14 00:28:50 MSD 2017


Ouaouh!


Very very nice tool, we even not dream it, but you do it ;-)

Thanks a lot.

Olivier
> Hi all,
>
> it saddens me to announce this three months after my initial work on 
> github and travis transition but it's been fi-na-lly done. What? 
> Everything you could ever ask for in the FreeMiNT project. ;-) OK, 
> perhaps not everything but coming pretty close to it:
>
>   * Automatic publishing on https://freemint.github.io/#snapshots
>     after each new commit for *freemint*, *mintlib*, {cf,gem}*lib*,
>     *fdlibm*, *mintbin* and *qed*
>   * All regular builds have history, so you can browse in previous
>     builds, useful when looking for working version of something
>   * Every pull request gets own separate build to test, the build url
>     is automatically linked in the PR's comments section
>   * Super convenient FreeMiNT and Qed builds (you'll get everything in
>     one package, more on FreeMiNT this later)
>
> Some technical information can be found here: 
> https://github.com/freemint/freemint/wiki/FreeMiNT-builds-and-continuous-integration-explained
>
> So, now let's talk about FreeMiNT. My main goal was pretty simple and 
> yet as complex as it gets: ridiculously easy testing so everyone, 
> simply everyone, can grab a build and give it a go. No waiting until 
> midnight, no compiling, no setting up /anything/, no messing up with 
> kernel modules, no overwriting existing (working) configuration. 
> Another goal was to have everything in its as default as possible 
> settings so all bugs would be immediately visible, not hidden thanks 
> to some "clever checkbox".
>
> So how did I do that:
>
>   * got rid of the vague "-cur" suffix and replaced it with first
>     three digits of git revision so you're going to get unique $SYSDIR
>     for each build you'd like to test (ok, in theory there could be a
>     conflict but I don't expect that anyone would have 100 1-19-xxx
>     folders in C:\mint)
>   * utilised mintloader.prg to the max -- so not only $SYSDIR but your
>     AUTO too would always contain unique MINT-xxx.PRG
>   * utilised my ancient (and seemingly useless) patch for MCHDIR --
>     now the builds aren't divided by CPU but by /machine/, i.e. when
>     you run MINT-xxx.PRG, you can be pretty sure no "foreign" kernel
>     modules are going to load
>   * no more hassle with "what binary/module I need for my machine" --
>     there are only three (very easily recognisable) archives: basic ST
>     (000), all the others (020+) and the FireBee (col), thanks to the
>     machine folders you don't have to do anything else, you can use
>     the same snapshot on the Falcon, CT60 and Aranym (!)
>   * this all means one thing: grab a snapshot, unzip it on C:\, rename
>     your working MINT*.PRG in AUTO to MINT*.PRX and reboot. That's it.
>     No other setup needed (even NVDI.PRG will be before the new
>     MINT-xxx.PRG) except setting your favourite desktop in XAAES.CNF;
>     when done with testing, simply delete C:\AUTO\MINT-xxx.PRG and
>     C:\MINT\1-19-xxx
>   * to make this even easier, there's an Aranym build available, yes,
>     dynamically generated standalone Aranym image with desktop, fvdi
>     and emutos after each commit! So now really /anyone/ can test new
>     kernels
>   * you'll get complete FreeMiNT distribution (sans the dev docs, this
>     needs to be sorted out first, see
>     https://github.com/freemint/freemint/issues/2), i.e. all the
>     READMEs, tools, additional files /for all three platforms/
>   * since we couldn't come to an agreement with Alan, the previous
>     old-fashioned build (everything in one archive) is still available
>     -- I didn't touch it and don't plan to; also Alan's usb4tos
>     archive is available at the same place
>
> That's more or less everything I can think of. It took me a lot of 
> time to figure it out, in the end it all kind of makes sense but there 
> were times when I was ready to give up, esp. the PRs had given me 
> headache for at least three weeks.
>
> Of course, there's plenty of things to improve:
>
>   * detect Hatari and MegaST machines (right now minthat.prg is never
>     executed and "megast" mchdir is never used)
>   * finally unify the build process (so I can type make CPU="xxx" and
>     get the /complete/ binary output, right now it's "patched" for
>     specific folders -- mainly *loaders and tools)
>   * some tools need STG compiled to HYP, thanks to Thorsten's tool
>     it's possible but I simply can't find energy to do this
>   * extend the freemint builds with bash, qed, maybe some other tools
>     (core-utils?)
>   * use latest libs when building apps (qed, mint tools, ...), i.e.
>     the script would download and depack latest binary snapshot before
>     building instead of relying on Vincent's packaging
>   * generate qed for all three platforms (I reverted the build back to
>     68000 for now)
>   * more exotic things -- setting up Travis with Aranym so one could
>     compile any package natively using freemint's gcc by simply
>     forking travis-scripts and adding build.sh, ideal for ./configure
>     based tools; setting up vnc on freemint and run (!) the aranym
>     image there (actually, I have done this as a proof of concept,
>     just with sharing aranym's screen -- it was too slow, we need a
>     bridged connection directly to freemint)
>
> That's pretty much it. It has been an interesting exercise (albeit a 
> bit time consuming), definitely applicable outside FreeMiNT/Atari 
> world. If you would like to see something similar in your Atari 
> project (EmuTOS, wink wink ;)), feel free to fork "travis-scripts" and 
> start from there, I'll happily give you a hint or two.
>
> -- 
> MiKRO / Mystic Bytes
> http://mikro.atari.org
>
>
> _______________________________________________
> Freemint-list mailing list
> Freemint-list at mail.atariforge.org
> http://mail.atariforge.org/mailman/listinfo/freemint-list


-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.atariforge.org/pipermail/freemint-list/attachments/20170413/4b01c798/attachment-0001.html 


More information about the Freemint-list mailing list