|
|
@@ -1,60 +0,0 @@
|
|
|
-#!/bin/bash
|
|
|
-
|
|
|
-# Exit code starts at 0 but is modified if any checks fail
|
|
|
-EXIT=0
|
|
|
-
|
|
|
-# Output a line prefixed with a timestamp
|
|
|
-info()
|
|
|
-{
|
|
|
- echo "$(date +'%F %T') |"
|
|
|
-}
|
|
|
-
|
|
|
-# Track number of seconds required to run script
|
|
|
-START=$(date +%s)
|
|
|
-echo "$(info) starting build checks."
|
|
|
-
|
|
|
-# Syntax check all python source files
|
|
|
-SYNTAX=$(find . -name "*.py" -type f -exec python -m py_compile {} \; 2>&1)
|
|
|
-if [[ ! -z $SYNTAX ]]; then
|
|
|
- echo -e "$SYNTAX"
|
|
|
- echo -e "\n$(info) detected one or more syntax errors, failing build."
|
|
|
- EXIT=1
|
|
|
-fi
|
|
|
-
|
|
|
-# Check all python source files for PEP 8 compliance, but explicitly
|
|
|
-# ignore:
|
|
|
-# - W504: line break after binary operator
|
|
|
-# - E501: line greater than 80 characters in length
|
|
|
-pycodestyle \
|
|
|
- --ignore=W504,E501 \
|
|
|
- netbox/
|
|
|
-RC=$?
|
|
|
-if [[ $RC != 0 ]]; then
|
|
|
- echo -e "\n$(info) one or more PEP 8 errors detected, failing build."
|
|
|
- EXIT=$RC
|
|
|
-fi
|
|
|
-
|
|
|
-# Point to the testing configuration file for use in CI
|
|
|
-ln -s configuration.testing.py netbox/netbox/configuration.py
|
|
|
-
|
|
|
-# Run NetBox tests
|
|
|
-coverage run --source="netbox/" netbox/manage.py test netbox/
|
|
|
-RC=$?
|
|
|
-if [[ $RC != 0 ]]; then
|
|
|
- echo -e "\n$(info) one or more tests failed, failing build."
|
|
|
- EXIT=$RC
|
|
|
-fi
|
|
|
-
|
|
|
-# Show code coverage report
|
|
|
-coverage report --skip-covered --omit *migrations*
|
|
|
-RC=$?
|
|
|
-if [[ $RC != 0 ]]; then
|
|
|
- echo -e "\n$(info) failed to generate code coverage report."
|
|
|
- EXIT=$RC
|
|
|
-fi
|
|
|
-
|
|
|
-# Show build duration
|
|
|
-END=$(date +%s)
|
|
|
-echo "$(info) exiting with code $EXIT after $(($END - $START)) seconds."
|
|
|
-
|
|
|
-exit $EXIT
|