poodinis/.github/workflows/dub.yml
2021-06-15 22:50:05 +03:00

82 lines
2.6 KiB
YAML

name: CI
# Overall Poodinis should work on a fairly wide variety of D versions. Similar to Vibe.d, the last
# 10 compiler releases should certainly be supported. As GCC supports D version 2.076, this should
# continue to be supported.
on:
schedule:
- cron: '45 6 1 * *'
push:
pull_request:
branches: [ main ]
jobs:
test:
name: ${{ matrix.compiler }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ ubuntu-latest, windows-latest, macos-latest ]
compiler:
- dmd-latest
- ldc-latest
- dmd-2.096.1
- dmd-2.095.1
- dmd-2.094.2
- dmd-2.093.1
- dmd-2.092.1
- dmd-2.091.1
- dmd-2.090.1
- dmd-2.089.1
- dmd-2.088.1
- dmd-2.087.1
- dmd-2.086.1
- dmd-2.085.1
- dmd-2.077.1
- dmd-2.076.1 # gdc (gcc v9 - v11.1) supports D at this version
- dmd-2.075.1
- dmd-2.074.1
- dmd-2.073.2
- dmd-2.072.2
- dmd-2.071.2
- dmd-2.070.2
- dmd-2.069.2
- ldc-1.25.1 # eq to dmd v2.095.1
- ldc-1.24.0 # eq to dmd v2.094.1
- ldc-1.23.0 # eq to dmd v2.093.1
# - ldc-1.22.0 # eq to dmd v2.092.1
# - ldc-1.21.0 # eq to dmd v2.091.1
# - ldc-1.20.1 # eq to dmd v2.090.1
# - ldc-1.19.0 # eq to dmd v2.089.1
# - ldc-1.18.0 # eq to dmd v2.088.1
# - ldc-1.17.0 # eq to dmd v2.087
# - ldc-1.16.0 # eq to dmd v2.086.1
- ldc-1.15.0 # eq to dmd v2.085.1
steps:
- uses: actions/checkout@v2
- name: Install D ${{ matrix.compiler }}
uses: dlang-community/setup-dlang@v1
with:
compiler: ${{ matrix.compiler }}
- name: Build library
run: dub build --build=release --config=library
- name: Build unittest
run: dub test --build=unittest --config=unittest
- name: Build examples
run: |
dub run --build=release --config=quickstartExample
dub run --build=release --config=qualifiersExample
dub run --build=release --config=arrayCompletionExample
dub run --build=release --config=annotationsExample
dub run --build=release --config=applicationContextExample
dub run --build=release --config=registerOnResolveExample
dub run --build=release --config=constructorInjectionExample
dub run --build=release --config=valueInjectionExample
dub run --build=release --config=postConstructorPreDestructorExample