Thread overview
Github Action: cross-platfrom D compiler installation
Sep 12, 2019
Mihails
Sep 12, 2019
Andre Pany
Sep 17, 2019
Mihails
September 12, 2019
https://github.com/marketplace/actions/d-compiler-installation
https://github.com/mihails-strasuns/setup-dlang

Main difference from https://forum.dlang.org/thread/lrbcmnblvfplkpfaokkh@forum.dlang.org is that this is written using Github Action Typescript API instead of a docker container and thus allows testing with all platforms supported by Github Actions.

Example yml:

```
name: Test My D Project
on: [push, pull_request]

jobs:
    test:
        name: Test
        strategy:
            matrix:
                os: [ubuntu-latest, windows-latest, macOS-latest]
                dc: [dmd-2.088.0, ldc-1.17.0]
        runs-on: ${{ matrix.os }}
        steps:
            - uses: actions/checkout@master

            - name: Install D compiler
              uses: mihails-strasuns/setup-dlang@v0
              with:
                  compiler: ${{ matrix.dc }}

            - name: Run tests
              run: dub -q test
```

Example test run: https://github.com/mihails-strasuns/d-simpleconfig/commit/5107baedcb5db11cf0076e5c74e3f68594fb495b/checks

Currently only supports DMD and LDC with exact version specifiers. Supporting GDC and convenience bits like `latest` or `nightly` is planned but not currently implemented.
September 12, 2019
On Thursday, 12 September 2019 at 13:52:14 UTC, Mihails wrote:
> https://github.com/marketplace/actions/d-compiler-installation
> https://github.com/mihails-strasuns/setup-dlang
>
> [...]

Fantastic, thanks a lot for your work!

Kind regards
Andre
September 17, 2019
On Thursday, 12 September 2019 at 13:52:14 UTC, Mihails wrote:
> https://github.com/marketplace/actions/d-compiler-installation
> https://github.com/mihails-strasuns/setup-dlang

https://github.com/mihails-strasuns/setup-dlang/releases/tag/v0.2.0

- Now supports 'ldc-latest', 'ldc-beta', 'dmd-latest' and 'dmd-beta' as compiler versions
- If now compiler version is specified, will default to 'dmd-latest' instead of failing