diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..f9ec9a6 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1 @@ +* @JAVGan @jajreidy diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..5ef15ee --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,27 @@ +name: Release on PyPI + +on: + push: + tags: + - v* + +jobs: + deploy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Set up Python + uses: actions/setup-python@v2 + with: + python-version: '3.9' + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install setuptools wheel twine + - name: Build and publish + env: + TWINE_USERNAME: __token__ + TWINE_PASSWORD: ${{ secrets.PYPI_TOKEN }} + run: | + python setup.py sdist bdist_wheel + twine upload dist/* diff --git a/.github/workflows/tox-test.yml b/.github/workflows/tox-test.yml new file mode 100644 index 0000000..5ef9db2 --- /dev/null +++ b/.github/workflows/tox-test.yml @@ -0,0 +1,114 @@ +name: Tox tests + +on: [push, pull_request] + +jobs: + linting: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Install OS packages + run: | + sudo apt-get -y update + sudo apt-get install -y rpm + sudo apt-get install -y libkrb5-dev + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: Install Tox + run: pip install tox 'virtualenv<20.21.1' + - name: Run Linting + run: tox -e lint + mypy: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Install OS packages + run: | + sudo apt-get -y update + sudo apt-get install -y rpm + sudo apt-get install -y libkrb5-dev + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: 3.9 + - name: Install Tox + run: pip install tox 'virtualenv<20.21.1' + - name: Run MyPy + run: tox -e mypy + unit-tests: + runs-on: ubuntu-latest + strategy: + matrix: + # https://raw.githubusercontent.com/actions/python-versions/main/versions-manifest.json + python-version: ["3.8", "3.9", "3.10", "3.11"] + steps: + - uses: actions/checkout@v2 + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + - name: Install OS packages + run: | + sudo apt-get -y update + sudo apt-get install -y rpm + sudo apt-get install -y libkrb5-dev + - name: Install Tox + run: pip install tox 'virtualenv<20.21.1' + - name: Test on ${{ matrix.python-version }} + run: tox -e "py${{ matrix.python-version }}" + coverage: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Install OS packages + run: | + sudo apt-get -y update + sudo apt-get install -y rpm + sudo apt-get install -y libkrb5-dev + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: 3.9 + - name: Install Tox + run: pip install tox 'virtualenv<20.21.1' + - name: Install pytest cov + run: pip install pytest-cov + - name: Run Tox + run: tox -e coverage + security: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Install OS packages + run: | + sudo apt-get -y update + sudo apt-get install -y rpm + sudo apt-get install -y libkrb5-dev + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: 3.8 + - name: Install Tox + run: pip install tox 'virtualenv<20.21.1' + - name: Run Tox + run: tox -e security + docs: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: Install OS packages + run: | + sudo apt-get -y update + sudo apt-get install -y rpm + sudo apt-get install -y libkrb5-dev + - name: Setup Python + uses: actions/setup-python@v2 + with: + python-version: 3.9 + - name: Install Tox + run: pip install tox 'virtualenv<20.21.1' + - name: Run Tox + run: tox -e docs +