name: CI


on:
  # Triggers the workflow on push or pull request events but only for the master branch
  pull_request:
  push:
    branches: [ master ]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:


jobs:

  # test that we can generate a software distribution and install it
  # thus avoid missing file issues after packaging.
  sdist-linux:
    name: 'sdist'
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Setup python
        uses: actions/setup-python@v2
        with:
          python-version: '3.10'

      - name: Build sdist
        run: python setup.py sdist --formats=zip

      - name: Install sdist from .zips
        run: python -m pip install dist/*.zip

  testing:
    name: 'install + test-suite'
    timeout-minutes: 10
    runs-on: ubuntu-latest
    steps:

      - name: Checkout
        uses: actions/checkout@v3

      # elastic only
      # - name: Build DB container
      #   run: docker build -t piker:elastic dockering/elastic

      - name: Setup python
        uses: actions/setup-python@v4
        with:
          python-version: '3.10'

      # elastic only
      # - name: Install dependencies
      #   run: pip install -U .[es] -r requirements-test.txt -r requirements.txt --upgrade-strategy eager

      - name: Install dependencies
        run: pip install -U . -r requirements-test.txt -r requirements.txt --upgrade-strategy eager

      - name: Test suite
        run: pytest tests -rs
