name: IntegrationTest
on:
  push:
    branches: [main]
    tags: [v*]
  pull_request:
jobs:
  test:
    name: ${{ matrix.package }} - Julia ${{ matrix.version }} 
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        version: [1]
        package:
          - DynamicHMC
          - AdvancedHMC
          - Turing
        include:
          - package: DynamicHMC
            version: 'nightly'
          - package: Turing
            version: 'nightly'
    steps:
      - uses: actions/checkout@v2
      - uses: julia-actions/setup-julia@v1
        with:
          version: ${{ matrix.version }}
          arch: x64
      - uses: julia-actions/julia-buildpkg@v1
      - run: |
          julia --code-coverage=user -e '
            using Pkg
            test_path = joinpath(pwd(), "test", "integration", "${{ matrix.package }}")
            Pkg.activate(test_path)
            Pkg.develop(PackageSpec(path=pwd()))
            Pkg.instantiate()
            include(joinpath(test_path, "runtests.jl"))'
      - uses: julia-actions/julia-processcoverage@v1
      - uses: codecov/codecov-action@v2
        with:
          files: lcov.info