Skip to content

Commit

Permalink
testing gh workflow: skipping tests for unchanged files
Browse files Browse the repository at this point in the history
  • Loading branch information
Aviksaikat committed Aug 13, 2023
1 parent 9a8cc54 commit 6db36c0
Showing 1 changed file with 134 additions and 115 deletions.
249 changes: 134 additions & 115 deletions .github/workflows/test.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,125 +10,144 @@ concurrency:
cancel-in-progress: true

jobs:
linting:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

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

- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install .[lint]
- name: Run Black
run: black --check .

- name: Run isort
run: isort --check-only .

- name: Run flake8
run: flake8 .

- name: Run mdformat
run: mdformat . --check

type-check:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

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

- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install .[lint,test]
- name: Run MyPy
run: mypy .

functional:
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest, macos-latest] # eventually add `windows-latest`
python-version: [3.8, 3.9, "3.10", "3.11"]

env:
detect-changes:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3
- name: Install changed-files action
run: npm install umani/changed-files

- name: Detect Changed Files
id: changed_files
run: npx changed-files --diff-base origin/main --extensions py

linting:
needs: detect-changes
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

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

- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install .[lint]
- name: Run Black
if: steps.detect-changes.outputs.files_changed == 'true'
run: black --check .
- name: Run isort
if: steps.detect-changes.outputs.files_changed == 'true'
run: isort --check-only .
- name: Run flake8
if: steps.detect-changes.outputs.files_changed == 'true'
run: flake8 .
- name: Run mdformat
if: steps.detect-changes.outputs.files_changed == 'true'
run: mdformat . --check


type-check:
needs: detect-changes
runs-on: ubuntu-latest

steps:
# Setup steps
- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: "3.10"

- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install .[lint,test]
- name: Run MyPy
if: steps.detect-changes.outputs.files_changed == 'true'
run: mypy .

functional:
needs: detect-changes
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest, macos-latest] # eventually add `windows-latest`
python-version: [3.8, 3.9, "3.10", "3.11"]
env:
GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GETH_VERSION: 1.12.0

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

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: '^1.20.1'

- name: Cache Geth
id: cache-geth
uses: actions/cache@v3
with:
path: $HOME/.local/bin
key: ${{ runner.os }}-geth-${{ env.GETH_VERSION }}

- name: Install Geth
if: steps.cache-geth.outputs.cache-hit != 'true'
run: |
mkdir -p $HOME/.local/bin
wget -O geth.tar.gz "https://github.com/ethereum/go-ethereum/archive/v$GETH_VERSION.tar.gz"
tar -zxvf geth.tar.gz
cd go-ethereum-$GETH_VERSION
make geth
cp ./build/bin/geth /usr/local/bin
geth version
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip uninstall eth-ape --yes
pip install .[test]
- name: Run Tests
run: pytest -m "not fuzzing" -s --cov=src -n auto --dist loadscope

fuzzing:
runs-on: ubuntu-latest

strategy:
steps:
# Setup steps
- uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Setup Python
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: '^1.20.1'

- name: Cache Geth
id: cache-geth
uses: actions/cache@v3
with:
path: $HOME/.local/bin
key: ${{ runner.os }}-geth-${{ env.GETH_VERSION }}

- name: Install Geth
if: steps.cache-geth.outputs.cache-hit != 'true'
run: |
mkdir -p $HOME/.local/bin
wget -O geth.tar.gz "https://github.com/ethereum/go-ethereum/archive/v$GETH_VERSION.tar.gz"
tar -zxvf geth.tar.gz
cd go-ethereum-$GETH_VERSION
make geth
cp ./build/bin/geth /usr/local/bin
geth version
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip uninstall eth-ape --yes
pip install .[test]
- name: Run Tests
if: steps.detect-changes.outputs.files_changed == 'true'
run: pytest -m "not fuzzing" -s --cov=src -n auto --dist loadscope

fuzzing:
needs: detect-changes
runs-on: ubuntu-latest

strategy:
fail-fast: true

steps:
- uses: actions/checkout@v3
steps:
# Setup steps
- uses: actions/checkout@v3

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

- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install .[test]
- name: Install Dependencies
run: |
python -m pip install --upgrade pip
pip install .[test]
- name: Run Tests
run: pytest -m "fuzzing" --no-cov -s
- name: Run Tests
if: steps.detect-changes.outputs.files_changed == 'true'
run: pytest -m "fuzzing" --no-cov -s

0 comments on commit 6db36c0

Please sign in to comment.