From 1375046852fbe4020c0085ed99844bf459d8c84c Mon Sep 17 00:00:00 2001 From: danischm Date: Wed, 22 May 2024 11:56:16 +0200 Subject: [PATCH] Add workflows --- .github/dependabot.yml | 15 ++++++ .github/workflows/release.yml | 21 +++++++++ .github/workflows/test.yml | 88 +++++++++++++++++++++++++++++++++++ 3 files changed, 124 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/release.yml create mode 100644 .github/workflows/test.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..9cd230d --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,15 @@ +# Please see the documentation for all configuration options: +# https://help.github.com/github/administering-a-repository/configuration-options-for-dependency-updates +version: 2 +updates: + - package-ecosystem: 'github-actions' + directory: '/' + schedule: + interval: 'daily' + - package-ecosystem: pip + directory: '/' + schedule: + interval: daily + versioning-strategy: lockfile-only + allow: + - dependency-type: 'all' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..4783557 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,21 @@ +name: Release + +on: + push: + tags: + - 'v*' + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - name: Publish + env: + POETRY_HTTP_BASIC_PYPI_USERNAME: __token__ + POETRY_HTTP_BASIC_PYPI_PASSWORD: ${{ secrets.POETRY_HTTP_BASIC_PYPI_PASSWORD }} + run: | + keyring --disable + pip install poetry + poetry build + poetry publish diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 0000000..3b3d1f1 --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,88 @@ +name: Tests +on: + workflow_dispatch: + pull_request: + push: + branches: + - main + +jobs: + lint: + name: Lint + runs-on: ubuntu-latest + timeout-minutes: 5 + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Python Setup + uses: actions/setup-python@v5 + with: + python-version: '3.11' + + - name: Lint Checks + run: | + pip install poetry + poetry install + poetry run flake8 + poetry run isort --check nac_collector + poetry run black --check nac_collector + poetry run mypy nac_collector + + test: + name: Tests + runs-on: ubuntu-latest + timeout-minutes: 10 + strategy: + matrix: + python: + - '3.8' + - '3.9' + - '3.10' + - '3.11' + - '3.12' + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Python Setup + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python }} + + - name: Test + run: | + pip install poetry + poetry install + poetry run pytest + + notification: + name: Notification + if: always() && github.event_name != 'pull_request' + needs: [lint, test] + runs-on: ubuntu-latest + timeout-minutes: 5 + steps: + - name: Check Job Success + run: | + if [ ${{ needs.lint.result }} == 'success' ] && [ ${{ needs.test.result }} == 'success' ]; then + echo "All jobs succeeded" + echo "jobSuccess=success" >> $GITHUB_ENV + else + echo "Not all jobs succeeded" + echo "jobSuccess=fail" >> $GITHUB_ENV + fi + id: print_status + + - name: Webex Notification + if: always() + uses: qsnyder/action-wxt@master + env: + TOKEN: ${{ secrets.WEBEX_TOKEN }} + ROOMID: ${{ secrets.WEBEX_ROOM_ID }} + MESSAGE: | + [**[${{ env.jobSuccess }}] ${{ github.repository }} #${{ github.run_number }}**](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}) + * Commit: [${{ github.event.head_commit.message }}](${{ github.event.head_commit.url }})[${{ github.event.pull_request.title }}](${{ github.event.pull_request.html_url }}) + * Author: ${{ github.event.sender.login }} + * Branch: ${{ github.ref }} ${{ github.head_ref }} + * Event: ${{ github.event_name }}