Skip to content

Version 1.0.0

Version 1.0.0 #15

Workflow file for this run

# This workflow will upload a Python Package using Twine when a release is created
# For more information see: https://help.github.com/en/actions/language-and-framework-guides/using-python-with-github-actions#publishing-to-package-registries
name: Check and publish
on:
workflow_dispatch: {}
pull_request:
branches: [master]
release:
types: [created]
jobs:
quality:
name: Code QA
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
- run: pip install black flake8 isort
- run: black --version
- run: isort --check .
- run: black --check .
- run: flake8 .
checks:
strategy:
fail-fast: false
matrix:
platform: ["ubuntu-20.04", "macos-13"]
python-version: ["3.6", "3.7", "3.8", "3.9", "3.10", "3.11"]
name: Python ${{ matrix.python-version }} on ${{ matrix.platform }}
runs-on: ${{ matrix.platform }}
needs: quality
steps:
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install etcd for linux
run: |
ETCD_VER=v3.4.14
DOWNLOAD_URL=https://github.com/etcd-io/etcd/releases/download
curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
mkdir /tmp/etcd-download-test
tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1
/tmp/etcd-download-test/etcd &
if: runner.os == 'Linux'
- name: Install etcd for macos
run: |
ETCD_VER=v3.4.14
DOWNLOAD_URL=https://github.com/etcd-io/etcd/releases/download
curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-darwin-amd64.zip -o /tmp/etcd-${ETCD_VER}-darwin-amd64.zip
mkdir /tmp/etcd-download-test
unzip /tmp/etcd-${ETCD_VER}-darwin-amd64.zip -d /tmp
mv /tmp/etcd-${ETCD_VER}-darwin-amd64/* /tmp/etcd-download-test
/tmp/etcd-download-test/etcd &
if: runner.os == 'macOS'
- name: Install packages
run: |
python -m pip install --upgrade pip
pip install setuptools wheel
pip install -e .
pip install -e aviso-server/monitoring
pip install -e aviso-server/rest
pip install -e aviso-server/auth
pip install -e aviso-server/admin
pip install -U -r tests/requirements-dev.txt
pip install -r docs/requirements.txt
- name: Tests on Ubuntu
if: matrix.platform == 'ubuntu-20.04'
run: |
pip freeze
pytest
env:
AVISO_DEBUG: True
- name: Tests on macOS
if: matrix.platform == 'macos-13'
run: |
pip freeze
pytest -v --cov=pyaviso --cache-clear
env:
AVISO_DEBUG: True
- name: Documentation
run: |
make clean
make html
working-directory: docs
deploy:
if: ${{ github.event_name == 'release' }}
name: Upload to Pypi
needs: checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: "3.8"
- name: Check version
run: |
release=${GITHUB_REF##*/}
version=$(python setup.py --version)
test "$release" == "$version"
- 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_API_TOKEN }}
run: |
python setup.py sdist bdist_wheel
twine upload dist/* --verbose