From a995c710c0d0fa95f0858262dbdf4edcc2d0993f Mon Sep 17 00:00:00 2001 From: Mike Bierlee Date: Tue, 14 Mar 2023 00:12:44 +0300 Subject: [PATCH] Add CI --- .github/workflows/dub.yml | 146 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 .github/workflows/dub.yml diff --git a/.github/workflows/dub.yml b/.github/workflows/dub.yml new file mode 100644 index 0000000..3ca67ba --- /dev/null +++ b/.github/workflows/dub.yml @@ -0,0 +1,146 @@ +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 + - 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 # 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 + - ldc-1.26.0 # eq to dmd v2.096.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 + 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-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 \ No newline at end of file