$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Niall Douglas (s_sourceforge_at_[hidden])
Date: 2021-01-24 14:24:12
On 24/01/2021 09:44, John Maddock via Boost wrote:
>> Github Actions is a convenience wrap of Azure Pipelines. You can use 
>> Azure Pipelines directly if you wish.
>>
>> Azure Pipelines is free for open source projects and it comes with 
>> runners for:
>>
>> - Windows Server 2019 x86/x64/ARM/ARM64
>> - Windows Server 2016 x86/x64/ARM/ARM64
>> - Ubuntu 20.04 x86/x64/ARM/ARM64
>> - Ubuntu 18.04 x64
>> - Ubuntu 16.04 x64
>> - Mac OS X 10.14 x64
>> - Mac OS X 10.15 x64
> 
> Even with the help of a famous-web-search-engine I couldn't find that 
> information anywhere on the Azure website... just saying.
It was composed by me from multiple sources, including personal 
experience of programming GA and submitting pull requests for AP-based 
CI open source projects.
Doing my own famous web searching to provide links to support my claims 
above:
https://azure.microsoft.com/en-us/services/devops/pipelines/
Scroll to the very bottom, you'll see there are 10 parallel jobs with 
unlimited minutes for open source projects. They actually provide 
additional stuff too free of cost for open source, some of the 
enterprisey features e.g. 2Gb of build artifact storage.
https://devblogs.microsoft.com/devops/top-5-open-source-features-in-azure-pipelines/
You can examine libgit2 for how to use Azure Pipelines for CI on github.
https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/hosted?view=azure-devops
Here is a list of all the OS platforms supported, as I listed above. You 
can actually prod GA to use OS platforms which GA says it doesn't 
support, but is in the list above. Obviously you're on your own if you 
do that.
https://azure.microsoft.com/en-us/updates/azure-devops-pipelines-introduces-support-for-linuxarm64/
There's the announcement of ARM64 hardware.
I actually couldn't find any proof that that ARM64 hardware they provide 
supports running ARM32 binaries, some ARM64 designs don't have the 
requisite hardware. Plus, the ARM32 implemented by ARM64 isn't "true" 
ARM32 e.g. with NEON being IEEE754 incomplete and so on. Something I 
haven't tried is whether qemu can emulate "legacy ARM" on ARM64 
including all quirks in a performant fashion. I'd like to think it would.
> But many thanks for the information, that's most useful (or will be if I 
> can find the docs).
Hopefully the above helps.
A huge short circuit to the learning curve is to find open source 
projects on github already using Azure Pipelines, and simply lift 
whatever they're doing. Github Actions has hugely closed the gap with 
Azure Pipelines in 2020 such that for most people implementing CI 
afresh, directly using Azure Pipelines is excess work when you can just 
"poke through" GA into the underlying AP if you need to, and otherwise 
remain within GA. GA is open source on github, so you can see how it 
converts your GA scripts into AP, and indeed you can then poke through 
into officially unsupported AP capabilities from GA. Stackoverflow is 
also an enormous help for unofficial hacks, as are various issue 
trackers on github.
For me personally, last Autumn I invested about a month of my precious 
outside-of-work free time into permanently leaving Travis and Appveyor 
for Github Actions, given that Travis was shortly going to be become 
unusable, which it then became. I ended up with a solution as 
exemplified by https://github.com/ned14/llfio, whereby if all CI tests 
pass on all platforms, it automatically publishes a new prerelease of 
prebuilt binaries to github and tags the git commit as "all tests 
passed". It also does cool stuff like summarise all your unit tests per 
pull request e.g. https://github.com/ned14/llfio/pull/68 (unhide the 
comments to see the tables).
This, in my opinion, is very cool. From time to time I choose a 
particular prerelease which I think particularly stable, and promote it 
to latest full release, merging that commit to master branch. I'm very 
happy with this setup, though I am now 100% dependent on Microsoft for 
everything. Feel free to lift from my .github/workflows GA scripting as 
you see fit.
Niall