Skip to content

Merge pull request #77 from h4ndzdatm0ld/master #247

Merge pull request #77 from h4ndzdatm0ld/master

Merge pull request #77 from h4ndzdatm0ld/master #247

Workflow file for this run

---
name: "CI"
on: # yamllint disable-line rule:truthy rule:comments
- "push"
- "pull_request"
jobs:
linters:
name: "Code Quality - Linting"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Python
uses: actions/setup-python@v2
- name: Install dependencies
run: |
pip install poetry
poetry install
- name: Lint & Code Format
run: |
echo 'Rnning Ruff' && \
poetry run ruff check . && \
echo 'Running Black' && \
poetry run black --check --diff . && \
echo 'Running Yamllint' && \
poetry run yamllint . && \
echo 'Running Bandit' && \
poetry run bandit --recursive ./ --configfile pyproject.toml && \
echo 'Running MyPy' && \
poetry run mypy .
test:
name: Testing on Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
needs:
- "linters"
strategy:
matrix:
python-version: ["3.9", "3.10", "3.11"]
steps:
- uses: actions/checkout@v2
- name: Setup python
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- name: "Install Containerlab"
run: |
sudo bash -c "$(curl -sL https://get.containerlab.dev)"
- name: "Start Arista CEOS"
run: "sudo containerlab deploy -t clab-files/clab-arista.yml"
- name: "Wait for Arista CEOS to be ready"
uses: "jakejarvis/wait-action@master"
with:
time: "10"
- name: "Change ownership of Containerlab files"
run: "sudo chown -R $USER clab-arista-testing.yml"
- name: Install dependencies
run: |
pip install poetry
poetry install --no-interaction
- name: Pytest
run: |
poetry run pytest --cov=nornir_netconf --cov-report=xml -vv
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v1
with:
token: ${{ secrets.CODECOV_TOKEN }}
publish_gh:
needs:
- "test"
name: "Publish to GitHub"
runs-on: "ubuntu-20.04"
if: "startsWith(github.ref, 'refs/tags/v')"
steps:
- name: "Check out repository code"
uses: "actions/checkout@v2"
- name: "Set up Python"
uses: "actions/setup-python@v2"
with:
python-version: "3.9"
- name: "Install Python Packages"
run: "pip install poetry"
- name: "Set env"
run: "echo RELEASE_VERSION=${GITHUB_REF:10} >> $GITHUB_ENV"
- name: "Run Poetry Version"
run: "poetry version $RELEASE_VERSION"
- name: "Run Poetry Build"
run: "poetry build"
- name: "Upload binaries to release"
uses: "svenstaro/upload-release-action@v2"
with:
repo_token: "${{ secrets.GITHUB_TOKEN }}"
file: "dist/*"
tag: "${{ github.ref }}"
overwrite: true
file_glob: true
publish_pypi:
needs:
- "test"
name: "Push Package to PyPI"
runs-on: "ubuntu-20.04"
if: "startsWith(github.ref, 'refs/tags/v')"
steps:
- name: "Check out repository code"
uses: "actions/checkout@v2"
- name: "Set up Python"
uses: "actions/setup-python@v2"
with:
python-version: "3.9"
- name: "Install Python Packages"
run: "pip install poetry"
- name: "Set env"
run: "echo RELEASE_VERSION=${GITHUB_REF:10} >> $GITHUB_ENV"
- name: "Run Poetry Version"
run: "poetry version $RELEASE_VERSION"
- name: "Run Poetry Build"
run: "poetry build"
- name: "Push to PyPI"
uses: "pypa/gh-action-pypi-publish@release/v1"
with:
user: "__token__"
password: "${{ secrets.PYPI_API_TOKEN }}"