Skip to content

[pytest] Add warning for PRs missing unit test file changes #6697

[pytest] Add warning for PRs missing unit test file changes

[pytest] Add warning for PRs missing unit test file changes #6697

Workflow file for this run

name: Python 3 CI
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
build:
runs-on: ${{ (matrix.python-version == '3.10' || matrix.python-version == '3.11') && 'ubuntu-22.04' || 'ubuntu-20.04' }}
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11']
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: run commit title format check
run: |
./tools/ci/check_for_commit_message.sh
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
- name: Cache pip
uses: actions/cache@v4
with:
# This path is specific to Ubuntu
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('desktop/core/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
${{ runner.os }}-
- name: Setup node 20 and cache npm
uses: actions/setup-node@v4
with:
node-version: 20
cache: 'npm'
- name: compile
run: |
sudo apt-get update
sudo apt-get install -y gcc g++ build-essential python${{ matrix.python-version }}-dev python${{ matrix.python-version }}-venv python${{ matrix.python-version }}-distutils asciidoc rsync curl sudo libkrb5-dev libldap2-dev libsasl2-dev libxml2-dev libxslt-dev libsasl2-modules-gssapi-mit libsnappy-dev libffi-dev # This should not be needed as some point
sudo curl -sL https://bootstrap.pypa.io/get-pip.py | sudo python${{ matrix.python-version }}
sudo apt-get install -y python3-setuptools
sudo apt-get install -y libncursesw5-dev libgdbm-dev libc6-dev libssl-dev openssl
export PYTHON_VER=python${{ matrix.python-version }}
export ROOT=$PWD
make apps
- name: run tests
run: |
mkdir -p test-reports # Ensure the directory exists
PYTHONWARNINGS=always ./build/env/bin/pytest --html=test-reports/report_${{ matrix.python-version }}.html --self-contained-html
- name: upload pytest report
uses: actions/upload-artifact@v4
with:
name: test-reports-${{ matrix.python-version }}
path: test-reports
- name: Check and comment if no unit test files are modified
if: matrix.python-version == '3.11'
run: |
git fetch origin master
changed_files=$(git diff --name-only origin/master)
if echo "$changed_files" | grep -qE '(^test|_test\.py|^tests|_tests\.py|.test)'; then
echo "✅ Unit test files were modified."
else
echo "⚠️ No unit test files modified."
curl -X POST \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
-d '{"body":"⚠️ No unit test files modified. Please ensure that changes are properly tested. ⚠️"}' \
"https://api.github.com/repos/${{ github.repository }}/issues/${{ github.event.pull_request.number }}/comments"
fi
- name: run python lints
run: |
PYTHONWARNINGS=always ./build/env/bin/hue runruff check
- name: run documentation lints
run: |
# Installs to move to image building
curl -O https://dl.google.com/go/go1.17.linux-amd64.tar.gz
tar -xvf go1.17.linux-amd64.tar.gz
export GO111MODULE=on
go/bin/go get -u github.com/raviqqe/muffet@v1.5.7
curl --output hugo_0.69.0_Linux.tar.gz -L https://github.com/gohugoio/hugo/releases/download/v0.69.0/hugo_0.69.0_Linux-64bit.tar.gz
tar -xvf hugo_0.69.0_Linux.tar.gz
export PATH=$PWD:$HOME/go/bin:$PATH
# Trigger linting if documentation changes
./tools/ci/check_for_website_dead_links.sh docs/docs-site
# ./tools/ci/check_for_website_dead_links.sh docs/gethue