diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..7c7ab49 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,47 @@ +name: CI + +on: [push, pull_request] + +jobs: + test: + name: Python ${{ matrix.python-version }} + runs-on: ubuntu-latest + + env: + PYTHONPATH: ${{ github.workspace }} + + strategy: + matrix: + python-version: + - '3.8' + - '3.9' + - '3.10' + - '3.11' + - '3.12' + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install coverage codecov pytest poetry + pip install -r packages/requirements-dev.txt + - name: Run tests with coverage + run: pytest --cov=sage_bbb --cov-report=xml + + - name: Run Tox tests + run: tox + + - name: Run pre-commit hooks + run: pre-commit run --all-files --config=.pre-commit-config-ci.yaml + + - name: Upload coverage to Codecov + run: codecov + env: + CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..6d440de --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,33 @@ +name: Release + +on: + push: + tags: + - 'v*.*.*' + +jobs: + release: + name: Build and Release + runs-on: ubuntu-latest + + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.x' + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install poetry + - name: Build package + run: | + poetry build + - name: Publish to PyPI + run: | + poetry publish --username __token__ --password ${{ secrets.PYPI_TOKEN }} + env: + PYPI_TOKEN: ${{ secrets.PYPI_TOKEN }} \ No newline at end of file