From e0229ba8610df06c275a96dfb7034c2683e06897 Mon Sep 17 00:00:00 2001 From: Ajurna Date: Thu, 7 Feb 2019 14:11:04 +0000 Subject: [PATCH] Set up CI with Azure Pipelines --- azure-pipelines.yml | 58 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 azure-pipelines.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml new file mode 100644 index 0000000..2d74fd6 --- /dev/null +++ b/azure-pipelines.yml @@ -0,0 +1,58 @@ +# Python Django +# Test a Django project on multiple versions of Python. +# Add steps that analyze code, save build artifacts, deploy, and more: +# https://docs.microsoft.com/azure/devops/pipelines/languages/python + +trigger: +- master + +pool: + vmImage: 'Ubuntu-16.04' +strategy: + matrix: + Python35: + PYTHON_VERSION: '3.5' + Python36: + PYTHON_VERSION: '3.6' + Python37: + PYTHON_VERSION: '3.7' + maxParallel: 3 + +steps: +- task: UsePythonVersion@0 + inputs: + versionSpec: '$(PYTHON_VERSION)' + architecture: 'x64' + +- task: PythonScript@0 + displayName: 'Export project path' + inputs: + scriptSource: 'inline' + script: | + """Search all subdirectories for `manage.py`.""" + from glob import iglob + from os import path + # Python >= 3.5 + manage_py = next(iglob(path.join('**', 'manage.py'), recursive=True), None) + if not manage_py: + raise SystemExit('Could not find a Django project') + project_location = path.dirname(path.abspath(manage_py)) + print('Found Django project in', project_location) + print('##vso[task.setvariable variable=projectRoot]{}'.format(project_location)) + +- script: | + python -m pip install --upgrade pip setuptools wheel + pip install -r requirements.txt + pip install unittest-xml-reporting + displayName: 'Install prerequisites' + +- script: | + pushd '$(projectRoot)' + python manage.py test --testrunner xmlrunner.extra.djangotestrunner.XMLTestRunner --no-input + condition: succeededOrFailed() + displayName: 'Run tests' + +- task: PublishTestResults@2 + inputs: + testResultsFiles: "**/TEST-*.xml" + testRunTitle: 'Python $(PYTHON_VERSION)'