This change removes the dependency on platform provided protobuf tools in favour of `grpcio-tools` dependency. This makes both development and compiler use independent from platform dependencies.
74 lines
1.8 KiB
YAML
74 lines
1.8 KiB
YAML
name: CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
jobs:
|
|
|
|
check-formatting:
|
|
runs-on: ubuntu-latest
|
|
|
|
name: Consult black on python formatting
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.7
|
|
- uses: Gr1N/setup-poetry@v2
|
|
- uses: actions/cache@v2
|
|
with:
|
|
path: ~/.cache/pypoetry/virtualenvs
|
|
key: ${{ runner.os }}-poetry-${{ hashFiles('poetry.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-poetry-
|
|
- name: Install dependencies
|
|
run: poetry install
|
|
- name: Run black
|
|
run: make check-style
|
|
|
|
run-tests:
|
|
runs-on: ubuntu-latest
|
|
|
|
name: Run tests with tox
|
|
|
|
strategy:
|
|
matrix:
|
|
python-version: [ '3.6', '3.7', '3.8']
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-python@v2
|
|
with:
|
|
python-version: ${{ matrix.python-version }}
|
|
- uses: Gr1N/setup-poetry@v2
|
|
- uses: actions/cache@v2
|
|
with:
|
|
path: ~/.cache/pypoetry/virtualenvs
|
|
key: ${{ runner.os }}-poetry-${{ hashFiles('poetry.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-poetry-
|
|
- name: Install dependencies
|
|
run: |
|
|
poetry install
|
|
- name: Run tests
|
|
run: |
|
|
make generate
|
|
make test
|
|
|
|
build-release:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.7
|
|
- uses: Gr1N/setup-poetry@v2
|
|
- name: Build package
|
|
run: poetry build
|
|
- name: Publish package to PyPI
|
|
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
|
|
run: poetry publish -n
|
|
env:
|
|
POETRY_PYPI_TOKEN_PYPI: ${{ secrets.pypi }}
|