From e79995a3a949bae0321b8dfbac170f15c7b4b950 Mon Sep 17 00:00:00 2001 From: Andrei Horodniceanu Date: Sun, 6 Jul 2025 12:36:17 +0300 Subject: [PATCH 1/4] CI: bump setup-dlang to v2 Signed-off-by: Andrei Horodniceanu --- .github/workflows/d.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/d.yml b/.github/workflows/d.yml index 62d8bb5..316441c 100644 --- a/.github/workflows/d.yml +++ b/.github/workflows/d.yml @@ -20,15 +20,15 @@ jobs: steps: - uses: actions/checkout@v3 - - uses: dlang-community/setup-dlang@4c99aa991ce7d19dd3064de0a4f2f6b2f152e2d7 + - uses: dlang-community/setup-dlang@v2 - name: 'Build & Test' run: | # Build the project, with its main file included, without unittests - dub build --compiler=$DC + dub build # Build and run tests, as defined by `unittest` configuration # In this mode, `mainSourceFile` is excluded and `version (unittest)` are included # See https://dub.pm/package-format-json.html#configurations - dub test --compiler=$DC + dub test # Run tests cd tests && rdmd test From bd89fc0e71daf2fe64f980994ed4ddb34bbcaca8 Mon Sep 17 00:00:00 2001 From: Andrei Horodniceanu Date: Sun, 6 Jul 2025 12:38:15 +0300 Subject: [PATCH 2/4] CI: update actions/checkout Signed-off-by: Andrei Horodniceanu --- .github/workflows/d.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/d.yml b/.github/workflows/d.yml index 316441c..046f707 100644 --- a/.github/workflows/d.yml +++ b/.github/workflows/d.yml @@ -19,7 +19,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 - uses: dlang-community/setup-dlang@v2 - name: 'Build & Test' From 61c86e92518aa10030d0360db944636465f185da Mon Sep 17 00:00:00 2001 From: Andrei Horodniceanu Date: Sun, 6 Jul 2025 12:41:46 +0300 Subject: [PATCH 3/4] CI: test dmd and ldc2 on ubuntu macos and windows Signed-off-by: Andrei Horodniceanu --- .github/workflows/d.yml | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/.github/workflows/d.yml b/.github/workflows/d.yml index 046f707..cebb35e 100644 --- a/.github/workflows/d.yml +++ b/.github/workflows/d.yml @@ -15,20 +15,26 @@ permissions: jobs: build: - - runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + dc: [dmd, ldc] + runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v4 - - uses: dlang-community/setup-dlang@v2 + - uses: actions/checkout@v4 + - uses: dlang-community/setup-dlang@v2 + with: + compiler: ${{ matrix.dc }} - - name: 'Build & Test' - run: | - # Build the project, with its main file included, without unittests - dub build - # Build and run tests, as defined by `unittest` configuration - # In this mode, `mainSourceFile` is excluded and `version (unittest)` are included - # See https://dub.pm/package-format-json.html#configurations - dub test - # Run tests - cd tests && rdmd test + - name: 'Build & Test' + run: | + # Build the project, with its main file included, without unittests + dub build + # Build and run tests, as defined by `unittest` configuration + # In this mode, `mainSourceFile` is excluded and `version (unittest)` are included + # See https://dub.pm/package-format-json.html#configurations + dub test + # Run tests + cd tests && rdmd test From 04ad7cdd4f6b0b320852a03309bd02e33b54e0b4 Mon Sep 17 00:00:00 2001 From: Andrei Horodniceanu Date: Sun, 6 Jul 2025 12:53:27 +0300 Subject: [PATCH 4/4] CI: test gdc Use ${DMD} -run instead of rdmd since gdc doesn't come with rdmd Signed-off-by: Andrei Horodniceanu --- .github/workflows/d.yml | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/.github/workflows/d.yml b/.github/workflows/d.yml index cebb35e..abd8c60 100644 --- a/.github/workflows/d.yml +++ b/.github/workflows/d.yml @@ -20,6 +20,8 @@ jobs: matrix: os: [ubuntu-latest, macos-latest, windows-latest] dc: [dmd, ldc] + include: + - { os: ubuntu-latest, dc: gdc-14 } runs-on: ${{ matrix.os }} steps: @@ -27,8 +29,22 @@ jobs: - uses: dlang-community/setup-dlang@v2 with: compiler: ${{ matrix.dc }} + dub: latest + + - name: Setup gdc specific environment + if: ${{ startsWith(matrix.dc, 'gdc') }} + run: | + tee -a ${GITHUB_ENV} <<<"DC=${DMD}" + # Linking errors without -allinst + # No other easy way to pass this to dub, using DFLAGS in the + # environment disables unittests + cat <<-EOF | sudo tee -a /etc/dmd.conf + [Environment] + DFLAGS=-allinst + EOF - name: 'Build & Test' + shell: bash run: | # Build the project, with its main file included, without unittests dub build @@ -37,4 +53,4 @@ jobs: # See https://dub.pm/package-format-json.html#configurations dub test # Run tests - cd tests && rdmd test + cd tests && "${DMD}" -run test.d