[fix] Fixed subnet division rule validation when master subnet is emp… #2112
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: OpenWISP Controller CI Build | |
on: | |
push: | |
branches: | |
- master | |
pull_request: | |
branches: | |
- master | |
jobs: | |
build: | |
name: Python==${{ matrix.python-version }} | ${{ matrix.django-version }} | |
runs-on: ubuntu-22.04 | |
services: | |
redis: | |
image: redis | |
ports: | |
- 6379:6379 | |
postgres: | |
image: postgis/postgis:13-3.3-alpine | |
env: | |
POSTGRES_PASSWORD: openwisp2 | |
POSTGRES_USER: openwisp2 | |
POSTGRES_DB: openwisp2 | |
ports: | |
- 5432:5432 | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: | |
- "3.8" | |
- "3.9" | |
- "3.10" | |
django-version: | |
- django~=3.2.0 | |
- django~=4.1.0 | |
- django~=4.2.0 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
cache: 'pip' | |
cache-dependency-path: | | |
**/requirements*.txt | |
- uses: browser-actions/setup-chrome@v1 | |
# Using a fixed version, see here for more information on why: | |
# https://github.com/openwisp/openwisp-controller/issues/902#issuecomment-2266219715 | |
# TODO: find a solution to allow using recent versions | |
with: | |
chrome-version: 125 | |
install-chromedriver: true | |
id: setup-chrome | |
- run: | | |
${{ steps.setup-chrome.outputs.chrome-path }} --version | |
chromedriver --version | |
- name: Install Dependencies | |
id: deps | |
run: | | |
sudo apt update | |
sudo apt -qq -y install sqlite3 gdal-bin libproj-dev \ | |
libgeos-dev libspatialite-dev spatialite-bin \ | |
libsqlite3-mod-spatialite | |
sudo npm install -g jshint stylelint | |
pip install -U pip wheel setuptools | |
pip install -U -r requirements-test.txt | |
pip install -U -e . | |
pip install ${{ matrix.django-version }} | |
- name: QA checks | |
run: ./run-qa-checks | |
- name: Tests | |
if: ${{ !cancelled() && steps.deps.conclusion == 'success' }} | |
run: | | |
coverage run runtests.py --parallel | |
# the following command runs tests with Postgres/PostGIS but | |
# only for specific test cases which are tagged with "db_tests" | |
POSTGRESQL=1 coverage run runtests.py --parallel --keepdb | |
# tests the extension capability | |
SAMPLE_APP=1 coverage run ./runtests.py --parallel --keepdb | |
coverage combine | |
coverage xml | |
env: | |
SELENIUM_HEADLESS: 1 | |
CHROME_BIN: ${{ steps.setup-chrome.outputs.chrome-path }} | |
- name: Upload Coverage | |
if: ${{ success() }} | |
uses: coverallsapp/github-action@v2 | |
with: | |
parallel: true | |
format: cobertura | |
flag-name: python-${{ matrix.env.env }} | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
coveralls: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Coveralls Finished | |
uses: coverallsapp/github-action@v2 | |
with: | |
parallel-finished: true |