From b6f7e3cafff897af62a7b92a2c3c6c341290048e Mon Sep 17 00:00:00 2001 From: Saikat Karmakar <31238298+Aviksaikat@users.noreply.github.com> Date: Sun, 8 Oct 2023 11:38:42 +0100 Subject: [PATCH] Create main.yml workflow added --- .github/workflows/main.yml | 120 +++++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..e563c4f --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,120 @@ +on: ["push", "pull_request"] + +name: push-push best practices + +concurrency: + # Cancel older, in-progress jobs from the same PR, same workflow. + # use run_id if the job is triggered by a push to ensure + # push-triggered jobs to not get canceled. + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + 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.10", "3.11"] + + env: + GITHUB_ACCESS_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + 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.7' + + - name: Install Geth + uses: gacts/install-geth-tools@v1 + with: + version: 1.12.2 + + - 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 loadgroup + + fuzzing: + runs-on: ubuntu-latest + + strategy: + fail-fast: true + + 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 .[test] + + - name: Run Tests + run: pytest -m "fuzzing" --no-cov -s