# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions

name: Plone package

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

jobs:
    build:
        runs-on: ubuntu-latest
        strategy:
            fail-fast: false
            matrix:
                plone-version:
                  - 'Plone52'
                  - 'Plone60'
                python-version: [3.7, 3.8, 3.9]

        steps:
            - uses: actions/setup-python@v4
              with:
                  python-version: '3.9'
            - uses: actions/checkout@v3
            - uses: actions/cache@v3
              with:
                  path: |
                    ~/.cache/pip
                    ~/buildout-cache
                    ~/extends
                  key: ${{ runner.os }}-tox-${{ matrix.python-version }}-${{ matrix.plone-version }}-${{ hashFiles('**/setup.py') }}-${{ hashFiles('**/requirements.txt') }}-${{ hashFiles('**/*.cfg') }}-${{ hashFiles('**/constraints.txt') }}-${{ hashFiles('**/tox.ini') }}
                  #restore-keys: |
                  #  ${{ runner.os }}-tox-
            - name: Set up Python ${{ matrix.python-version }}
              uses: actions/setup-python@v4
              with:
                  python-version: ${{ matrix.python-version }}
            - name: setup buildout cache
              run: |
                  mkdir -p ~/buildout-cache/{eggs,downloads}
                  mkdir ~/.buildout
                  echo "[buildout]" > $HOME/.buildout/default.cfg
                  echo "download-cache = $HOME/buildout-cache/downloads" >> $HOME/.buildout/default.cfg
                  echo "eggs-directory = $HOME/buildout-cache/eggs" >> $HOME/.buildout/default.cfg
            - name: Install dependencies
              run: |
                  python -m pip install --upgrade pip
                  pip install tox tox-gh-actions
            - name: Black-Check
              run: |
                  tox -r -e black-check
            - name: Test with tox
              run: |
                  tox -r
              env:
                PLONE-VERSION: ${{ matrix.plone-version }}
                PYTHON-VERSION: ${{ matrix.python-version }}
            - name: "Upload coverage to Codecov"
              uses: "codecov/codecov-action@v3"
              with:
                fail_ci_if_error: true
              if: matrix.python-version == '3.7'
