Thread overview
setup-dmd GitHub action
Sep 12, 2019
WebFreak001
Sep 12, 2019
Dennis
Sep 12, 2019
WebFreak001
Sep 12, 2019
kinke
Sep 13, 2019
Mihails
Sep 13, 2019
Dennis
Sep 14, 2019
kinke
September 12, 2019
I made a GitHub Actions action and published it on the GitHub marketplace which sets up DMD on Windows, Linux and OSX in the virtual environment on a GitHub Actions runner.

It supports any stable release (theoretically also below 2.064) and any pre-release denoted with the -beta.1 suffix for example. It can also use the nightly builds from the downloads page and it's very easy to use.

I first tried to use the dlang runner which has an open PR on the actions repository right now but it turned out it limits it to running as docker and only ubuntu, so I instead made this typescript action which runs on all operating systems and uses the APIs to download & cache the tools so the builds are really quick.

Marketplace: https://github.com/marketplace/actions/setup-dmd
GitHub: https://github.com/WebFreak001/setup-dmd

(well while writing this forum post I saw that there is another project which does the same but now it's already too late, I did search for something when I started working on this when it wasn't there yet :p)
September 12, 2019
On Thursday, 12 September 2019 at 19:07:30 UTC, WebFreak001 wrote:
> ...

So I've seen GitHub actions pop-up suddenly but I can't figure out what it is.
Googling it gives me some high-level generic description about "workflow automation" but I don't see what concrete problem it's trying to solve. Can anyone please explain what's in it for the hobbyist D coder?

Also I've seen some articles about it dating back to 2018, but apparently you can only recently sign up for the beta.
September 12, 2019
On Thursday, 12 September 2019 at 20:46:42 UTC, Dennis wrote:
> On Thursday, 12 September 2019 at 19:07:30 UTC, WebFreak001 wrote:
>> ...
>
> So I've seen GitHub actions pop-up suddenly but I can't figure out what it is.
> Googling it gives me some high-level generic description about "workflow automation" but I don't see what concrete problem it's trying to solve. Can anyone please explain what's in it for the hobbyist D coder?
>
> Also I've seen some articles about it dating back to 2018, but apparently you can only recently sign up for the beta.

it's like Travis CI but directly on GitHub (also it supports running your tests and workflows on windows)

I got my beta access today which is why I even got to make this
September 12, 2019
On Thursday, 12 September 2019 at 20:46:42 UTC, Dennis wrote:
> On Thursday, 12 September 2019 at 19:07:30 UTC, WebFreak001 wrote:
>> ...
>
> So I've seen GitHub actions pop-up suddenly but I can't figure out what it is.
> Googling it gives me some high-level generic description about "workflow automation" but I don't see what concrete problem it's trying to solve. Can anyone please explain what's in it for the hobbyist D coder?
>
> Also I've seen some articles about it dating back to 2018, but apparently you can only recently sign up for the beta.

Seems like a tighter integration of Azure Pipelines (somewhat adapted) into GitHub, an obvious move by Microsoft to foster their position. So Windows/Linux/macOS on x86_64 (Azure) hosts, max. 6 hours runtime per job, max 20 jobs in parallel (Azure: 10).
September 13, 2019
On Thursday, 12 September 2019 at 22:00:11 UTC, kinke wrote:
> Seems like a tighter integration of Azure Pipelines (somewhat adapted) into GitHub, an obvious move by Microsoft to foster their position. So Windows/Linux/macOS on x86_64 (Azure) hosts, max. 6 hours runtime per job, max 20 jobs in parallel (Azure: 10).

Cleaned up workflow yml syntax and typescript API stand out as a major improvement for me compared to old Azure. Also streamlined docker integration. There is much less boilerplate involved overall.

And it is worth mentioning that even before that Azure was among the best available CI options if you need to test a project on all 3 major OS, I can't remember any other free CI out of my head which provides windows/linux/macos runners without having to maintain separate test scripts for those.

So essentially Github Actions takes existing top CI offer and makes it easier to use.
September 13, 2019
On Friday, 13 September 2019 at 10:51:28 UTC, Mihails wrote:
> So essentially Github Actions takes existing top CI offer and makes it easier to use.

Thanks for the clarification you all!

September 14, 2019
On Friday, 13 September 2019 at 10:51:28 UTC, Mihails wrote:
> And it is worth mentioning that even before that Azure was among the best available CI options if you need to test a project on all 3 major OS, I can't remember any other free CI out of my head which provides windows/linux/macos runners without having to maintain separate test scripts for those.

True, but I've just recently become aware of and experimented with Cirrus CI, which seems like a serious contender. Open-source projects can use agents with up to 8 x86_64 cores and up to 24 GB of memory. They also feature Windows/Linux/macOS/*FreeBSD* agents, docker support, max 2 hours runtime per job, and max 13 parallel jobs per user/contributor (not per GitHub organization/repo!)...
So for those requiring powerful CI machines, a Cirrus Linux agent with 8 cores is obviously way faster than an Azure Linux agent with 2 cores.

https://cirrus-ci.org/