From 3a8bacb8efc0b0ffc294f7c8d68f411c0281d2b5 Mon Sep 17 00:00:00 2001 From: Matthew Jones Date: Mon, 24 Sep 2018 10:53:55 -0400 Subject: [PATCH] Add an initial check and gate job configuration for zuul Updates for running ui tests and linters --- Makefile | 5 +- requirements/requirements_dev.txt | 1 - tools/docker-compose/Dockerfile | 1 + tools/docker-compose/start_tests.sh | 9 +++ tools/docker-compose/unit-tests/entrypoint.sh | 2 +- tox.ini | 75 +++++++------------ 6 files changed, 44 insertions(+), 49 deletions(-) create mode 100755 tools/docker-compose/start_tests.sh diff --git a/Makefile b/Makefile index 9468563647..59c34e2127 100644 --- a/Makefile +++ b/Makefile @@ -364,7 +364,7 @@ test: @if [ "$(VENV_BASE)" ]; then \ . $(VENV_BASE)/awx/bin/activate; \ fi; \ - py.test -n auto $(TEST_DIRS) + PYTHONDONTWRITEBYTECODE=1 py.test -p no:cacheprovider -n auto $(TEST_DIRS) awx-manage check_migrations --dry-run --check -n 'vNNN_missing_migration_file' test_combined: test_ansible test @@ -564,6 +564,9 @@ docker-compose-cluster: docker-auth docker-compose-test: docker-auth cd tools && TAG=$(COMPOSE_TAG) DEV_DOCKER_TAG_BASE=$(DEV_DOCKER_TAG_BASE) docker-compose run --rm --service-ports awx /bin/bash +docker-compose-runtest: + cd tools && TAG=$(COMPOSE_TAG) DEV_DOCKER_TAG_BASE=$(DEV_DOCKER_TAG_BASE) docker-compose run --rm --service-ports awx /start_tests.sh + docker-compose-build: awx-devel-build # Base development image build diff --git a/requirements/requirements_dev.txt b/requirements/requirements_dev.txt index d3fbaf3b6c..261ba40b54 100644 --- a/requirements/requirements_dev.txt +++ b/requirements/requirements_dev.txt @@ -16,7 +16,6 @@ pytest-timeout pytest-xdist logutils flower -uwsgitop jupyter matplotlib backports.tempfile # support in unit tests for py32+ tempfile.TemporaryDirectory diff --git a/tools/docker-compose/Dockerfile b/tools/docker-compose/Dockerfile index b97dc58c45..7bb75569e8 100644 --- a/tools/docker-compose/Dockerfile +++ b/tools/docker-compose/Dockerfile @@ -25,6 +25,7 @@ ADD tools/docker-compose/awx.egg-info /tmp/awx.egg-info RUN ln -Ffs /awx_devel/tools/docker-compose/nginx.conf /etc/nginx/nginx.conf RUN ln -Ffs /awx_devel/tools/docker-compose/nginx.vh.default.conf /etc/nginx/conf.d/nginx.vh.default.conf RUN ln -s /awx_devel/tools/docker-compose/start_development.sh /start_development.sh +RUN ln -s /awx_devel/tools/docker-compose/start_tests.sh /start_tests.sh RUN ln -s /awx_devel/tools/docker-compose/bootstrap_development.sh /bootstrap_development.sh RUN openssl req -nodes -newkey rsa:2048 -keyout /etc/nginx/nginx.key -out /etc/nginx/nginx.csr -subj "/C=US/ST=North Carolina/L=Durham/O=Ansible/OU=AWX Development/CN=awx.localhost" RUN openssl x509 -req -days 365 -in /etc/nginx/nginx.csr -signkey /etc/nginx/nginx.key -out /etc/nginx/nginx.crt diff --git a/tools/docker-compose/start_tests.sh b/tools/docker-compose/start_tests.sh new file mode 100755 index 0000000000..b95c999b76 --- /dev/null +++ b/tools/docker-compose/start_tests.sh @@ -0,0 +1,9 @@ +set +x + +cp -R /tmp/awx.egg-info /awx_devel/ || true +sed -i "s/placeholder/$(cat /awx_devel/VERSION)/" /awx_devel/awx.egg-info/PKG-INFO +cp /tmp/awx.egg-link /venv/awx/lib/python2.7/site-packages/awx.egg-link + +cd /awx_devel +cp awx/settings/local_settings.py.docker_compose awx/settings/local_settings.py +make test \ No newline at end of file diff --git a/tools/docker-compose/unit-tests/entrypoint.sh b/tools/docker-compose/unit-tests/entrypoint.sh index 1adfc079a4..0ff29d946b 100644 --- a/tools/docker-compose/unit-tests/entrypoint.sh +++ b/tools/docker-compose/unit-tests/entrypoint.sh @@ -2,7 +2,7 @@ # Code duplicated from start_development.sh cp -R /tmp/awx.egg-info /awx_devel/ || true -sed -i "s/placeholder/$(git describe --long | sed 's/\./\\./g')/" /awx_devel/awx.egg-info/PKG-INFO +sed -i "s/placeholder/$(cat /awx_devel/VERSION)/" /awx_devel/awx.egg-info/PKG-INFO cp /tmp/awx.egg-link /venv/awx/lib/python2.7/site-packages/awx.egg-link cp -f awx/settings/local_settings.py.docker_compose awx/settings/local_settings.py diff --git a/tox.ini b/tox.ini index c24784aa39..583b4afb88 100644 --- a/tox.ini +++ b/tox.ini @@ -5,73 +5,56 @@ envlist = ui-lint, api, ui, - coveralls -[testenv] -basepython = python2.7 -setenv = - DJANGO_SETTINGS_MODULE = awx.settings.development_quiet - SWIG_FEATURES = -cpperraswarn -includeall -I/usr/include/openssl - HOME = {homedir} - USERPROFILE = {homedir} - ANSIBLE_VENV_PATH = {toxworkdir} - AWX_VENV_PATH = {toxworkdir} - SKIP_SLOW_TESTS = True +; [testenv] +; basepython = python2.7 +; setenv = +; DJANGO_SETTINGS_MODULE = awx.settings.development_quiet +; SWIG_FEATURES = -cpperraswarn -includeall -I/usr/include/openssl +; HOME = {homedir} +; USERPROFILE = {homedir} +; ANSIBLE_VENV_PATH = {toxworkdir} +; AWX_VENV_PATH = {toxworkdir} +; SKIP_SLOW_TESTS = True [testenv:api-lint] deps = - -r{toxinidir}/requirements/requirements.txt -r{toxinidir}/requirements/requirements_dev.txt coverage coveralls commands = - make flake8 + flake8 [testenv:ui-lint] deps = nodeenv commands = - make jshint + make ui-devel + npm run --prefix awx/ui jshint + npm run --prefix awx/ui lint [testenv:api] deps = - -r{toxinidir}/requirements/requirements.txt - -r{toxinidir}/requirements/requirements_dev.txt - ansible - coverage - coveralls + #-r{toxinidir}/requirements/requirements.txt + #-r{toxinidir}/requirements/requirements_git.txt + #-r{toxinidir}/requirements/requirements_dev.txt + #ansible + #coverage + #coveralls + docker-compose commands = - python setup.py develop + #python setup.py develop # coverage run --help # coverage run -p --source awx/main/tests -m pytest {posargs} - py.test awx/main/tests awx/conf/tests awx/sso/tests {posargs:-k 'not old'} + #py.test -n auto awx/main/tests/unit awx/main/tests/functional awx/conf/tests awx/sso/tests + #awx-manage check_migrations --dry-run --check -n 'vNNN_missing_migration_file' + #make test + make docker-compose-build + make docker-compose-runtest [testenv:ui] deps = nodeenv commands = - make UI_TEST_MODE=CI test-ui - -[testenv:ansible] -deps = - ansible - pytest - -r{toxinidir}/requirements/requirements_ansible.txt -commands = - {envdir}/bin/py.test awx/lib/tests/ -c awx/lib/tests/pytest.ini {posargs} - -[testenv:coveralls] -commands= - coverage combine - coverage report -m - coveralls - -[pytest] -DJANGO_SETTINGS_MODULE = awx.settings.development -python_paths = venv/tower/lib/python2.7/site-packages -site_dirs = venv/tower/lib/python2.7/site-packages -python_files = *.py -addopts = --reuse-db --nomigrations --tb=native -markers = - ac: access control test - license_feature: ensure license features are accessible or not depending on license + make ui-devel + make ui-test-ci