Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 97 additions & 0 deletions .github/workflows/publish-to-pypi.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: Publish Python 🐍 distribution 📦 to PyPI

on:
push:
tags:
- '*'

jobs:
build:
name: Build distribution 📦
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install pypa/build
run: >-
python3 -m
pip install
build
--user
- name: Build a binary wheel and a source tarball
run: python3 -m build
- name: Store the distribution packages
uses: actions/upload-artifact@v4
with:
name: python-package-distributions
path: dist/

publish-to-pypi:
name: >-
Publish Python 🐍 distribution 📦 to PyPI
needs:
- build
runs-on: ubuntu-latest
environment:
name: pypi
url: https://pypi.org/p/evpn-connector
permissions:
id-token: write # IMPORTANT: mandatory for trusted publishing

steps:
- name: Download all the dists
uses: actions/download-artifact@v4
with:
name: python-package-distributions
path: dist/
- name: Publish distribution 📦 to PyPI
uses: pypa/gh-action-pypi-publish@release/v1

github-release:
name: >-
Sign the Python 🐍 distribution 📦 with Sigstore
and upload them to GitHub Release
needs:
- publish-to-pypi
runs-on: ubuntu-latest

permissions:
contents: write # IMPORTANT: mandatory for making GitHub Releases
id-token: write # IMPORTANT: mandatory for sigstore

steps:
- name: Download all the dists
uses: actions/download-artifact@v4
with:
name: python-package-distributions
path: dist/
- name: Sign the dists with Sigstore
uses: sigstore/gh-action-sigstore-python@v3.0.0
with:
inputs: >-
./dist/*.tar.gz
./dist/*.whl
- name: Create GitHub Release
env:
GITHUB_TOKEN: ${{ github.token }}
run: >-
gh release create
"$GITHUB_REF_NAME"
--repo "$GITHUB_REPOSITORY"
--notes ""
- name: Upload artifact signatures to GitHub Release
env:
GITHUB_TOKEN: ${{ github.token }}
# Upload to GitHub Release using the `gh` CLI.
# `dist/` contains the built packages, and the
# sigstore-produced signatures and certificates.
run: >-
gh release upload
"$GITHUB_REF_NAME" dist/**
--repo "$GITHUB_REPOSITORY"
46 changes: 46 additions & 0 deletions .github/workflows/tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: tests

on:
push:
pull_request:

jobs:
Lint:
runs-on: ubuntu-24.04
strategy:
fail-fast: true
matrix:
python-version: ["3.8"]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install tox
run: pip install tox
- name: pep8
run: |
tox -e pep8
tests:
runs-on: ubuntu-24.04
strategy:
fail-fast: true
matrix:
python-version: ["3.8"]
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install required packages
run: |
sudo apt update
sudo apt install libev-dev -y
- name: Install tox
run: pip install tox
- name: Unit tests
run: |
tox -e ${{ matrix.python-version }}
# - name: Functional tests
# run: |
# tox -e ${{ matrix.python-version }}-functional
2 changes: 1 addition & 1 deletion evpn_connector/cmd/evpn.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,12 @@
import sys

from oslo_config import cfg
from evpn_connector.common import log as evpn_log

from evpn_connector.bgp import client as bgp_client
from evpn_connector.common import conf_opts
from evpn_connector.common import config
from evpn_connector.common import constants
from evpn_connector.common import log as evpn_log
from evpn_connector.common import metrics
from evpn_connector.common import sentry
from evpn_connector.ovs import client as ovs_client
Expand Down
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,5 @@ enum34===1.1.6; python_version<'3.8'
subprocess32===3.2.6;python_version=='2.7' # PSF
sentry-sdk==1.5.2;python_version<'3.8' # BSD
sentry-sdk==1.6.0;python_version>='3.8' # BSD
loopster>=2.9.1,<3.0.0 # Apache-2.0
loopster>=2.14.4,<3.0.0 # Apache-2.0
obsender>=5.0.0,<6.0.0 # Apache-2.0
2 changes: 2 additions & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ name = evpn-connector
summary = The main task of this daemon is to interact with the gobgp and ovs to provide a connection using the EVPN protocol
description_file =
README.md
long_description_content_type = text/markdown
author = VK Tech
author_email = digital.tech@corp.mail.ru
home_page = https://github.com/vktechdev/evpn_connector
Expand All @@ -15,6 +16,7 @@ classifier =
Programming Language :: Python :: 2.7
Programming Language :: Python :: 3
Programming Language :: Python :: 3.6
Programming Language :: Python :: 3.8

[files]
packages =
Expand Down
3 changes: 2 additions & 1 deletion test-requirements.txt
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
hacking>=0.12.0,!=0.13.0,<0.14 # Apache-2.0
hacking<3 # Apache-2.0
typing-extensions<4.2.0;python_version=='3.6' # PSF-2.0
pytest-timer
pytest==4.6.1
coverage>=4.0 # Apache-2.0
mock==3.0.5
flake8>=3.8.4 # Flake8 License (MIT)