name: CI on: schedule: - cron: '45 6 1 * *' push: pull_request: branches: [ main ] jobs: build-latest: 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 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=jsonExample dub run --build=release --config=javaPropertiesExample dub run --build=release --config=iniExample dub run --build=release --config=valueSubstitutionExample dub run --build=release --config=manipulationExample build-older: name: ${{ matrix.compiler }} on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [ ubuntu-latest ] compiler: - dmd-latest - ldc-latest - dmd-2.102.2 - dmd-2.101.2 - dmd-2.100.2 - dmd-2.099.1 - dmd-2.098.1 - dmd-2.097.2 # Baseline DMD version - ldc-1.32.0 # eq to dmd v2.102.2 - ldc-1.31.0 # eq to dmd v2.101.2 - ldc-1.30.0 # eq to dmd v2.100.1 - ldc-1.29.0 # eq to dmd v2.099.1 - ldc-1.28.1 # eq to dmd v2.098.1 - ldc-1.27.1 # eq to dmd v2.097.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=jsonExample dub run --build=release --config=javaPropertiesExample dub run --build=release --config=iniExample dub run --build=release --config=valueSubstitutionExample dub run --build=release --config=manipulationExample # GDC has compatibility issues # gdc-latest: # name: GDC on Ubuntu # runs-on: ubuntu-latest # steps: # - uses: actions/checkout@v2 # - name: Install DMD (so dub is available) # uses: dlang-community/setup-dlang@v1 # with: # compiler: dmd-latest # - name: Install GDC # run: | # sudo apt-get update # sudo apt-get install gdc -y # gdc --version # - name: Build library # env: # DC: gdc # run: dub build --compiler=gdc --build=release --config=library # - name: Build unittest # env: # DC: gdc # run: dub test --compiler=gdc --build=unittest --config=unittest # - name: Build examples # env: # DC: gdc # run: | # dub run --compiler=gdc --build=release --config=quickstartExample # dub run --compiler=gdc --build=release --config=jsonExample # dub run --compiler=gdc --build=release --config=javaPropertiesExample # dub run --compiler=gdc --build=release --config=iniExample # dub run --compiler=gdc --build=release --config=valueSubstitutionExample # dub run --compiler=gdc --build=release --config=manipulationExample