name: tests on: push: branches: - main pull_request: schedule: - cron: '0 8 * * *' jobs: test: runs-on: ubuntu-latest strategy: fail-fast: false matrix: python-version: ["3.12", "3.11", "3.10", "3.9"] env: PYTHONUNBUFFERED: 1 PYTHONWARNINGS: always steps: - name: Checkout run: | echo $GITHUB_REF $GITHUB_SHA git clone https://github.com/$GITHUB_REPOSITORY.git . git fetch origin $GITHUB_SHA:temporary-ci-branch git checkout $GITHUB_SHA || (git fetch && git checkout $GITHUB_SHA) - name: 'fetch master' run: | git fetch origin master - name: 'Set up Python ${{ matrix.python-version }}' uses: actions/setup-python@v4 # https://github.com/marketplace/actions/setup-python with: python-version: '${{ matrix.python-version }}' cache: 'pip' # caching pip dependencies cache-dependency-path: '**/requirements.dev.txt' - name: 'Bootstrap dev venv' # The first CLI call will create the .venv run: | ./dev-cli.py version - name: 'dev CLI help' run: | ./dev-cli.py --help - name: 'Safety' run: | ./dev-cli.py safety - name: 'Run tests with Python v${{ matrix.python-version }}' run: | .venv/bin/coverage erase ./dev-cli.py coverage - name: 'Upload coverage report' uses: codecov/codecov-action@v3 # https://github.com/marketplace/actions/codecov with: fail_ci_if_error: false verbose: true