name: CI
on:
  push:
    branches: [master]
    tags: ["*"]
  pull_request:
jobs:
  test:
    name: Julia ${{ matrix.version }} - ${{ matrix.os }} - ${{ matrix.arch }} - ${{ github.event_name }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        version:
          - '1.0'
          - '1' # automatically expands to the latest stable 1.x release of Julia
          - nightly
        os:
          - ubuntu-latest
        arch:
          - x64
          - x86
        include:
          # test macOS and Windows with latest Julia only
          - os: macOS-latest
            arch: x64
            version: 1
          - os: windows-latest
            arch: x64
            version: 1
          - os: windows-latest
            arch: x86
            version: 1
    steps:
      - uses: actions/checkout@v2
      - uses: julia-actions/setup-julia@v1
        with:
          version: ${{ matrix.version }}
          arch: ${{ matrix.arch }}
      - uses: actions/cache@v1
        env:
          cache-name: cache-artifacts
        with:
          path: ~/.julia/artifacts
          key: ${{ runner.os }}-test-${{ env.cache-name }}-${{ hashFiles('**/Project.toml') }}
          restore-keys: |
            ${{ runner.os }}-test-${{ env.cache-name }}-
            ${{ runner.os }}-test-
            ${{ runner.os }}-
      - uses: julia-actions/julia-buildpkg@v1
      - uses: julia-actions/julia-runtest@v1
      - uses: julia-actions/julia-processcoverage@v1
      - uses: codecov/codecov-action@v1
        with:
          file: lcov.info
#  docs:
#    name: Documentation
#    runs-on: ubuntu-latest
#    steps:
#      - uses: actions/checkout@v2
#      - uses: julia-actions/julia-buildpkg@latest
#      - uses: julia-actions/julia-docdeploy@latest
#        env:
#          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
#          DOCUMENTER_KEY: ${{ secrets.DOCUMENTER_KEY }}
