diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..a9d888c --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,76 @@ +name: CI build & test + +on: + push: + branches: [ "master" ] + pull_request: + + +jobs: + py-lint: + name: Lint + continue-on-error: true + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + cache: 'pip' + + - name: Install python dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Run pylint + run: pylint --recursive=y . + + unit-tests: + name: Unit tests + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + cache: 'pip' + + - name: Run unit tests + run: make test + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + flags: unit + + integration-tests: + needs: unit-tests + name: Integration tests + runs-on: ubuntu-latest + + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.11' + cache: 'pip' + + - name: Run integration tests + run: make integration + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + flags: integration \ No newline at end of file