[monitoring] Adding influxDB 2.x version support #274 #1371
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 Monitoring CI Build | |
on: | |
push: | |
branches: | |
- master | |
- dev | |
pull_request: | |
branches: | |
- master | |
- dev | |
jobs: | |
build: | |
name: Python==${{ matrix.python-version }} | ${{ matrix.django-version }} | |
runs-on: ubuntu-20.04 | |
services: | |
redis: | |
image: redis | |
ports: | |
- 6379:6379 | |
influxdb1: | |
image: influxdb:1.8-alpine | |
ports: | |
- 8086:8086 | |
influxdb2: | |
image: influxdb:2.0-alpine | |
volumes: | |
- influxdb2-data:/var/lib/influxdb2 | |
ports: | |
- 8087:8086 | |
options: >- | |
--env DOCKER_INFLUXDB_INIT_MODE=setup | |
--env DOCKER_INFLUXDB_INIT_USERNAME=openwisp | |
--env DOCKER_INFLUXDB_INIT_PASSWORD=openwisp | |
--env DOCKER_INFLUXDB_INIT_ORG=openwisp | |
--env DOCKER_INFLUXDB_INIT_BUCKET=openwisp2 | |
--env DOCKER_INFLUXDB_INIT_RETENTION=1w | |
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 | |
influxdb-version: | |
- influxdb1 | |
- influxdb2 | |
steps: | |
- name: Install system packages | |
run: | | |
sudo apt update && | |
sudo apt -qq install \ | |
sqlite3 \ | |
fping \ | |
gdal-bin \ | |
libproj-dev \ | |
libgeos-dev \ | |
libspatialite-dev \ | |
spatialite-bin \ | |
libsqlite3-mod-spatialite | |
- uses: actions/checkout@v2 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v2 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install python system packages | |
run: | | |
pip install -U pip wheel setuptools | |
- name: Install npm dependencies | |
run: sudo npm install -g jshint stylelint | |
- name: Start InfluxDB ${{ matrix.influxdb-version }} container | |
run: docker-compose up -d ${{ matrix.influxdb-version }} | |
- name: Install test dependencies | |
run: | | |
pip install -r requirements-test.txt | |
- name: Install openwisp-monitoring | |
run: | | |
pip install -U -I -e . | |
pip uninstall -y django | |
pip install ${{ matrix.django-version }} | |
- name: Set InfluxDB environment variables for InfluxDB 2.x | |
if: matrix.influxdb-version == 'influxdb2' | |
run: | | |
export INFLUXDB_HOST=localhost | |
export INFLUXDB_PORT=8087 | |
export USE_INFLUXDB2=True | |
- name: QA checks | |
run: | | |
./run-qa-checks | |
- name: Tests | |
run: | | |
SAMPLE_APP=1 coverage run --source=openwisp_monitoring runtests.py | |
coverage run -a --source=openwisp_monitoring runtests.py | |
TIMESERIES_UDP=1 coverage run -a --source=openwisp_monitoring runtests.py | |
coverage xml | |
- name: Upload Coverage | |
uses: coverallsapp/github-action@v2 | |
with: | |
parallel: true | |
format: cobertura | |
flag-name: python-${{ matrix.python-version }}-${{ matrix.django-version }} | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
deploy: | |
name: Deploy Docker Image | |
runs-on: ubuntu-20.04 | |
needs: | |
- build | |
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }} | |
steps: | |
- uses: actions/checkout@master | |
# the following action is equivalent to | |
# echo "$DOCKER_HUB_SECRET" | docker login --username "$DOCKER_HUB_USERNAME" --password-stdin | |
- name: Login to Docker Hub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKER_HUB_USERNAME }} | |
password: ${{ secrets.DOCKER_HUB_SECRET }} | |
- name: Push to Docker | |
run: | | |
docker build . -t openwisp/openwisp-monitoring:develop | |
docker push openwisp/openwisp-monitoring:develop | |
coveralls: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Coveralls Finished | |
uses: coverallsapp/github-action@v2 | |
with: | |
parallel-finished: true |