name: Tests on: [ push ] jobs: run_tests: runs-on: ubuntu-latest strategy: matrix: attempt: [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30 ] python-version: [ 3.7, 3.8, 3.9 ] fail-fast: false timeout-minutes: 10 steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: ${{ matrix.python-version }} - name: Cache dependencies uses: actions/cache@v2 with: path: ~/.cache/pip key: Key-v1-${{ matrix.python-version }}-${{ hashFiles('requirements.txt') }}-${{ hashFiles('requirements-dev.txt') }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install -r requirements-dev.txt - name: Build hivemind run: | pip install . - name: Test run: | cd tests pytest --durations=0 --durations-min=1.0 -v build_and_test_p2pd: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.8' - name: Cache dependencies uses: actions/cache@v2 with: path: ~/.cache/pip key: Key-v1-3.8-${{ hashFiles('requirements.txt') }}-${{ hashFiles('requirements-dev.txt') }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install -r requirements-dev.txt - name: Build hivemind run: | pip install . --global-option=build_py --global-option="--buildgo" --no-use-pep517 - name: Test run: | cd tests pytest -k "p2p" -v codecov_in_develop_mode: runs-on: ubuntu-latest timeout-minutes: 10 steps: - uses: actions/checkout@v2 - name: Set up Python uses: actions/setup-python@v2 with: python-version: '3.8' - name: Cache dependencies uses: actions/cache@v2 with: path: ~/.cache/pip key: Key-v1-3.8-${{ hashFiles('requirements.txt') }}-${{ hashFiles('requirements-dev.txt') }} - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r requirements.txt pip install -r requirements-dev.txt - name: Build hivemind run: | pip install -e . - name: Test run: | pytest --cov=hivemind -v tests - name: Upload coverage to Codecov uses: codecov/codecov-action@v1