Newer
Older
dub_jkp / .github / workflows / main.yml
# 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-10.15, ubuntu-18.04, windows-2019 ]
        dc: [ dmd-2.092.0, ldc-1.21.0, dmd-master, ldc-master ]

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

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

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

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

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

    - name: '[POSIX] Test'
      if: runner.os != 'Windows'
      env:
        COVERAGE: false
        # The value doesn't matter as long as it's > 2.087
        FRONTEND: 2.091.0
      run: |
        ./scripts/ci/travis.sh

    - name: '[Windows] Test'
      if: runner.os == 'Windows'
      # 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 }}
        dub test  --compiler=${{ env.DC }}