-
fddbe159
ci.yml 2.52 KiB
name: build-satella
run-name: ${{ github.actor }}
on: [ push ]
jobs:
tests:
runs-on: ubuntu-20.04
strategy:
matrix:
python-version: [ "3.7", "3.8", "pypy3.9", "pypy3.10", "3.9", "3.10", "3.11", "3.12" ]
steps:
- uses: actions/checkout@main
- uses: actions/setup-python@main
with:
python-version: ${{ matrix.python-version }}
cache: 'pip'
- name: Install everything
run: |
sudo apt-get update
sudo apt-get install -y python3-setuptools python3-yaml
pip install -U pip setuptools wheel disttools packaging
pip install -U -e .[test,dev]
- name: Test everything
run: pytest -n 8 -vv --cov=satella
upload-coverage:
runs-on: "ubuntu-20.04"
needs: ["tests"]
steps:
- uses: actions/checkout@main
- uses: actions/setup-python@main
with:
python-version: '3.8'
- run: coverage xml
- uses: caffco/code-climate-github-action@v1.0.0
build-project:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@main
- uses: actions/setup-python@main
name: Setup Python
with:
python-version: '3.8'
cache: 'pip'
- name: Update system
run: |
sudo apt-get update
sudo apt-get install -y python3-setuptools python3-yaml
pip install -U pip setuptools wheel disttools packaging
- name: Alter Version
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
run: |
echo -e '__version__ = "' > satella/__init__.py
echo -e '${{ github.event.release.tag_name }}' >> satella/__init__.py
echo '"' >> satella/__init__.py
- name: Build
run: python -m build .
- name: Archive production artifacts
uses: actions/upload-artifact@main
with:
name: builds
path: |
dist
send-to-pypi:
runs-on: "ubuntu-20.04"
needs: ["build-project", "tests"]
if: github.event_name == 'push' && contains(github.ref, 'refs/tags/')
steps:
- uses: actions/setup-python@main
name: Setup Python
with:
python-version: '3.8'
cache: 'pip'
- name: Install Twine
run: pip install twine
- name: Download all builds artifacts
uses: actions/download-artifact@main
with:
name: builds
- name: Send over packages to PyPI
run: |
echo $PYPIRC_PASSWORD_DATA > ~/.pypirc
twine upload dist/*