Skip to content

bump version to 2.3.0 #2022

bump version to 2.3.0

bump version to 2.3.0 #2022

Workflow file for this run

# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: pyeudiw
on:
push:
branches: ["**"]
pull_request:
branches: ["**"]
jobs:
pre_job:
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@v3.4.0
with:
skip_after_successful_duplicate: "true"
same_content_newer: "true"
main_job:
needs: pre_job
if: needs.pre_job.outputs.should_skip != 'true'
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
python-version:
- '3.10'
- '3.11'
- '3.12'
- '3.13'
steps:
- uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Install system package
run: |
sudo apt update
sudo apt install python3-dev python3-pip libssl-dev libffi-dev
- name: Install MongoDB
run: |
sudo apt-get install -y gnupg curl
sudo curl -fsSL https://pgp.mongodb.com/server-7.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
sudo echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
- name: Start MongoDB
run: sudo systemctl start mongod
- name: Install dependencies
run: |
python -m pip install --upgrade pip setuptools
if [ -f requirements-dev.txt ]; then pip install -r requirements-dev.txt; fi
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
if [ -f requirements-customizations.txt ]; then pip install -r requirements-customizations.txt; fi
python -m pip install -e ".[satosa,test]"
python -m pip list
- name: Lint with flake8
run: |
flake8 pyeudiw --count --show-source --statistics
flake8 pyeudiw --count --exit-zero --statistics --extend-select=E,W,F
- name: Radon complexity (cyclomatic)
run: radon cc pyeudiw -a -n B --exclude "*/tests/*" || true
- name: Radon maintainability index
run: radon mi pyeudiw -n B --exclude "*/tests/*" || true
- name: Tests
run: |
# pytest --cov=pyeudiw --cov-fail-under=90 pyeudiw
pytest --cov=pyeudiw pyeudiw
coverage report -m --skip-covered
- name: Upload logs artifact if tests fail
uses: actions/upload-artifact@v4
if: failure()
with:
name: pyeudiw-logs-${{ matrix.python-version }}${{ github.run_id }}
path: logs/
- name: Bandit Security Scan
run: |
bandit -r -x pyeudiw/tests* pyeudiw/*
- name: Lint with html linter
run: |
echo -e '\nHTML:'
readarray -d '' array < <(find $SRC example -name "*.html" -print0)
echo "Running linter on (${#array[@]}): "
printf '\t- %s\n' "${array[@]}"
echo "Linter output:"
for file in "${array[@]}"
do
echo -e "\n$file:"
html_lint.py "$file" | awk -v path="file://$PWD/$file:" '$0=path$0' | sed -e 's/: /:\n\t/';
done
# block if the html linter fails
#for file in "${array[@]}"
#do
#errors=$(html_lint.py "$file" | grep -c 'Error')
#if [ "$errors" -gt 0 ]; then exit 1; fi;
#done