diff --git a/.github/workflows/testing.yml b/.github/workflows/testing.yml new file mode 100644 index 0000000..8002b44 --- /dev/null +++ b/.github/workflows/testing.yml @@ -0,0 +1,61 @@ +name: CI/CD Pipeline + +on: + push: + branches: + - '*' # Run on all branches + pull_request: + branches: + - main + +jobs: + lint: + name: Linter + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.x' + cache: 'pip' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -e . + + - name: Run pylint + run: | + pylint gcnn/ + + unit_tests: + name: Unit Tests + runs-on: ubuntu-latest + needs: lint + steps: + - name: Checkout code + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.x' + cache: 'pip' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -e . + + - name: Run unit tests + run: | + pytest --cov=gcnn/ --cov-report=xml + + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: ./coverage.xml