Skip to content

scripts: gracefully handle GitHub rate limiting error when downloading a node #53

scripts: gracefully handle GitHub rate limiting error when downloading a node

scripts: gracefully handle GitHub rate limiting error when downloading a node #53

name: CI
on:
pull_request:
branches:
- master
push:
branches:
- master
tags-ignore:
- v*.*
workflow_dispatch:
workflow_call:
jobs:
setup:
name: Setup ${{ matrix.os }} Python ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-20.04, windows-latest, macos-latest ]
python-version: ["3.11", "3.12"]
steps:
- name: Checkout code
uses: actions/checkout@v3
with:
path: 'boatest'
- name: Set up Python ${{ matrix.python-version }}
uses: actions/[email protected]
with:
python-version: ${{ matrix.python-version }}
check-latest: true
- if: matrix.os != 'windows-latest'
name: Setup install dependencies
run: |
cd boatest
python -m venv venv
source venv/bin/activate
pip install -e .[dev]
- if: matrix.os == 'windows-latest'
name: Setup install dependencies
run: |
cd boatest
python -m venv venv
venv\Scripts\activate
pip install -e .[dev]
- if: matrix.os != 'windows-latest'
name: fetch neo-go for Unix
run: |
cd boatest
source venv/bin/activate
cd scripts
python download-node.py
- if: matrix.os == 'windows-latest'
name: fetch neo-go for Windows
run: |
cd boatest
venv/Scripts/activate
cd scripts
python download-node.py
- name: prep for persist
run: tar -czf boatest.tar.gz boatest
- name: persist
uses: actions/upload-artifact@v3
with:
name: setup-artifact-${{ matrix.os }}-py${{ matrix.python-version }}
path: boatest.tar.gz
retention-days: 1
linting:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- uses: psf/black@stable
with:
options: '--check --target-version py311'
version: '23.9.1'
src: "boaconstructor/ examples/ scripts/"
type-checking:
needs: setup
runs-on: ubuntu-20.04
steps:
- name: restore artifact
uses: actions/download-artifact@v3
with:
name: setup-artifact-ubuntu-20.04-py3.11
- name: Set up Python 3.11
uses: actions/[email protected]
with:
python-version: "3.11"
check-latest: true
- name: extract & type check
run: |
tar -xf boatest.tar.gz
cd boatest
source venv/bin/activate
make type
unit-tests:
name: Tests ${{ matrix.os }} Python ${{ matrix.python-version }}
needs: setup
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ ubuntu-20.04, windows-latest, macos-latest ]
python-version: ["3.11", "3.12"]
steps:
- name: restore artifact
uses: actions/download-artifact@v3
with:
name: setup-artifact-${{ matrix.os }}-py${{ matrix.python-version }}
- name: Set up Python ${{ matrix.python-version }}
uses: actions/[email protected]
with:
python-version: '${{ matrix.python-version }}'
check-latest: true
- if: success() && matrix.os != 'windows-latest'
name: extract and test
run: |
tar -xf boatest.tar.gz
cd boatest
source venv/bin/activate
make test
- if: success() && matrix.os == 'windows-latest'
name: extract and test
run: |
tar -xf boatest.tar.gz
cd boatest
venv\Scripts\activate
make test