.github/workflows/ci.yml: add gdc build job #392
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
pull_request: | |
push: | |
branches: | |
- master | |
jobs: | |
Build: | |
if: "!contains(github.event.head_commit.message, '[skip ci]')" | |
strategy: | |
fail-fast: false | |
matrix: | |
# use older ubuntu / linux version for glibc compatibility | |
os: [ubuntu-20.04, windows-latest, macos-latest] | |
dc: | |
- ldc-latest | |
- dmd-latest | |
build: [debug, release] | |
arch: | |
- x86_64 | |
libdparse-version: [min, max] | |
include: | |
# windows x86 | |
- os: windows-latest | |
arch: x86 | |
dc: ldc-latest | |
build: debug | |
libdparse-version: min | |
# old compiler tests | |
- { os: ubuntu-20.04, dc: dmd-2.095.1, libdparse-version: min, build: debug, arch: x86_64 } | |
- { os: ubuntu-20.04, dc: ldc-1.25.0, libdparse-version: min, build: debug, arch: x86_64 } | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Setup D | |
uses: dlang-community/setup-dlang@v1 | |
with: | |
compiler: ${{ matrix.dc }} | |
# Build | |
- name: Build | |
run: | | |
dub build --build=${{ matrix.build }} --config=client --arch=${{ matrix.arch }} | |
dub build --build=${{ matrix.build }} --config=server --arch=${{ matrix.arch }} | |
# Tests | |
- name: Build DSymbol | |
env: | |
LIBDPARSE_VERSION: ${{ matrix.libdparse-version }} | |
run: | | |
cd dsymbol | |
rdmd ../d-test-utils/test_with_package.d $LIBDPARSE_VERSION libdparse -- dub build --build=${{ matrix.build }} | |
- name: Test DSymbol | |
env: | |
LIBDPARSE_VERSION: ${{ matrix.libdparse-version }} | |
run: | | |
cd dsymbol | |
rdmd ../d-test-utils/test_with_package.d $LIBDPARSE_VERSION libdparse -- dub test | |
# test that both lowest supplied and highest available libdparse versions are compatible (for DUB users depending on DCD) | |
- name: Test dependency versions | |
run: | | |
rdmd ./d-test-utils/test_with_package.d $LIBDPARSE_VERSION libdparse -- dub build --build=${{ matrix.build }} --config=client --arch=${{ matrix.arch }} | |
rdmd ./d-test-utils/test_with_package.d $LIBDPARSE_VERSION libdparse -- dub build --build=${{ matrix.build }} --config=server --arch=${{ matrix.arch }} | |
- name: Linux Tests | |
if: contains(matrix.os, 'ubuntu') | |
run: | | |
./run_tests.sh --extra | |
working-directory: tests | |
shell: bash | |
- name: Windows and MacOS Tests | |
if: contains(matrix.os, 'windows') || contains(matrix.os, 'macos') | |
run: | | |
./run_tests.sh --extra | |
working-directory: tests | |
shell: bash | |
continue-on-error: true | |
Build-gdc: | |
name: Build with gdc | |
if: "!contains(github.event.head_commit.message, '[skip ci]')" | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- { os: ubuntu-latest, dc: gdc-12, libdparse-version: min, build: debug, arch: x86_64 } | |
- { os: ubuntu-latest, dc: gdc-12, libdparse-version: max, build: debug, arch: x86_64 } | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Setup D tools | |
# Pull in dmd-latest with dub & tools | |
uses: dlang-community/setup-dlang@v1 | |
with: | |
compiler: dmd-latest | |
- name: Setup D | |
run: | | |
sudo apt update | |
sudo apt install -y gdc-12 | |
gdc-12 --version | |
echo "DC=gdc-12" >> "${GITHUB_ENV}" | |
- name: Build | |
run: make gdc GDC=$DC | |
- name: Build DSymbol | |
env: | |
LIBDPARSE_VERSION: ${{ matrix.libdparse-version }} | |
run: | | |
cd dsymbol | |
rdmd ../d-test-utils/test_with_package.d $LIBDPARSE_VERSION libdparse -- dub build --build=${{ matrix.build }} | |
- name: Test DSymbol | |
env: | |
LIBDPARSE_VERSION: ${{ matrix.libdparse-version }} | |
# Get around linking errors in gdc | |
DFLAGS: '-fall-instantiations' | |
run: | | |
cd dsymbol | |
rdmd ../d-test-utils/test_with_package.d $LIBDPARSE_VERSION libdparse -- dub test | |
# test that both lowest supplied and highest available libdparse versions are compatible (for DUB users depending on DCD) | |
- name: Test dependency versions | |
env: | |
LIBDPARSE_VERSION: ${{ matrix.libdparse-version }} | |
run: | | |
rm -rf "${HOME}/.dub/packages/libdparse" | |
rdmd ./d-test-utils/test_with_package.d $LIBDPARSE_VERSION libdparse -- make gdc GDC=$DC DPARSE_DIR=~/.dub/packages/libdparse/*/libdparse | |
- name: Linux Tests | |
run: ./run_tests.sh --extra | |
working-directory: tests | |
shell: bash |