name: tests

on:
  push:
    branches: [master, main]
  pull_request:
    branches: [master, main]

jobs:
  tests:
    name: "Run tests on py${{ matrix.python-version }}"
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        include:
          - python-version: "3.6"
          - python-version: "3.7"
          - python-version: "3.8"
          - python-version: "3.9"

    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0

      - name: Set up Python
        id: setup_python
        uses: conda-incubator/setup-miniconda@v2
        with:
          activate-environment: vplanet
          environment-file: environment.yml
          python-version: ${{ matrix.python-version }}

      - name: Install vplanet-private pre-release
        id: install
        if: steps.setup_python.outcome == 'success'
        shell: bash -l {0}
        env:
          ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
        run: |
          python -m pip install git+https://$ACCESS_TOKEN@github.com/VirtualPlanetaryLaboratory/vplanet-private.git@main#egg=vplanet


      - name: Install bigplanet
        id: tools
        if: steps.install.outcome == 'success'
        shell: bash -l {0}
        run: |
          python -m pip install -e .

      - name: Run tests
        if: steps.tools.outcome == 'success'
        shell: bash -l {0}
        run: python -m pytest -v tests --junitxml=junit/test-results.xml --cov=bigplanet/ --cov-report=xml

      - name: Get unique id
        id: unique-id
        env:
          STRATEGY_CONTEXT: ${{ toJson(strategy) }}
        run: |
          export JOB_ID=`echo $STRATEGY_CONTEXT | md5sum`
          echo "::set-output name=id::$JOB_ID"

      - name: Publish unit test results
        uses: EnricoMi/publish-unit-test-result-action@v1
        if: always()
        with:
          files: junit/test-*.xml
          comment_mode: update last

      - name: CodeCov
        uses: codecov/codecov-action@v1.5.0
        with:
          files: ./coverage.xml
        #shell: bash -l {0}
        #run: |
        #  bash <(curl -s https://codecov.io/bash)
