Newer
Older
dub_jkp / .github / workflows / main.yml
@Jan Jurzitza Jan Jurzitza on 15 Feb 2023 3 KB reintroduce dmd-latest to CI runner
# Cross platform tests for DUB

name: Testsuite

# Only triggers on pushes to master & stable, as well as PR to master and stable
# Sometimes reverts appear in the upstream repository (e.g. when the revert button
# is clicked by a contributor with commit access), this should be tested as PR).
#
# Also note that Github actions does not retrigger on target branch changes,
# hence the check on push.
on:
  pull_request:
    branches:
      - master
      - stable
  push:
    branches:
      - master
      - stable
      # Use this branch name in your fork to test changes
      - github-actions

jobs:
  main:
    name: Run
    strategy:
      # Default, disable if you want to debug
      fail-fast: false
      matrix:
        # Latest stable version, update at will
        os: [ macOS-11, ubuntu-20.04, windows-2019 ]
        dc:
          - dmd-latest
          - dmd-2.100.2
          - ldc-latest
          - dmd-master
#          - ldc-master
          # This is the bootstrap compiler used to compile the releases
          - ldc-1.23.0
          # Some intermediate compilers for good measure
          - dmd-2.095.1
          - dmd-2.098.1
        include:
          - { do_test: true }
          - { dc: dmd-2.095.1, do_test: false }
          - { dc: dmd-2.098.1, do_test: false }
          - { dc: ldc-1.23.0 , do_test: false }

    runs-on: ${{ matrix.os }}
    steps:

    # Install required dependencies
    - name: '[OSX] Install dependencies'
      if: runner.os == 'macOS'
      run: |
        brew install pkg-config coreutils
        echo "PKG_CONFIG_PATH=/usr/local/opt/openssl@1.1/lib/pkgconfig/" >> $GITHUB_ENV

    - name: '[Linux] Install dependencies'
      if: runner.os == 'Linux'
      run: |
        sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev netcat

    # Compiler to test with
    - name: Prepare compiler
      uses: dlang-community/setup-dlang@v1
      with:
        compiler: ${{ matrix.dc }}

    # Checkout the repository
    - name: Checkout
      uses: actions/checkout@v3

    - name: '[POSIX] Test'
      if: runner.os != 'Windows'
      env:
        COVERAGE: false
        # The value doesn't matter as long as it's > 2.087
        FRONTEND: 2.095.0
      run: |
        dub build --compiler=${{ env.DC }}
        if [[ ${{ matrix.do_test }} == 'true' ]]; then
          dub run   --compiler=${{ env.DC }} --single test/issue2051_running_unittests_from_dub_single_file_packages_fails.d
          ./scripts/ci/travis.sh
        fi

    - name: '[Windows] Test'
      if: runner.os == 'Windows'
      env:
        DUB: ${{ github.workspace }}\bin\dub.exe
      # Only run `dub test` to run unittests so far,
      # the test-suite needs to be overhauled to support Windows
      run: |
        dub build --compiler=${{ env.DC }}
        if [[ ${{ matrix.do_test }} == 'true' ]]; then
          dub test  --compiler=${{ env.DC }}
          dub run   --compiler=${{ env.DC }} --single test/issue2051_running_unittests_from_dub_single_file_packages_fails.d
          cd test
          dub --single run-unittest.d
        fi
      shell: bash