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