mirror of
				https://github.com/inventree/InvenTree.git
				synced 2025-10-31 13:15:43 +00:00 
			
		
		
		
	Set up CI with Azure Pipelines
[skip ci]
This commit is contained in:
		
							
								
								
									
										71
									
								
								.devops/test_stats.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										71
									
								
								.devops/test_stats.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,71 @@ | |||||||
|  | # 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-latest | ||||||
|  | strategy: | ||||||
|  |   matrix: | ||||||
|  |     Python39: | ||||||
|  |       PYTHON_VERSION: '3.9' | ||||||
|  |   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 --require-hashes -r requirements.txt | ||||||
|  |     pip install --require-hashes -r requirements-dev.txt | ||||||
|  |     pip install unittest-xml-reporting coverage invoke | ||||||
|  |     sudo apt-get install poppler-utils | ||||||
|  |     sudo apt-get install libpoppler-dev | ||||||
|  |   displayName: 'Install prerequisites' | ||||||
|  |  | ||||||
|  | - script: | | ||||||
|  |     pushd '$(projectRoot)' | ||||||
|  |     invoke update | ||||||
|  |     coverage run manage.py test --testrunner xmlrunner.extra.djangotestrunner.XMLTestRunner --no-input | ||||||
|  |     coverage xml -i | ||||||
|  |   displayName: 'Run tests' | ||||||
|  |   env: | ||||||
|  |     INVENTREE_DB_ENGINE: sqlite3 | ||||||
|  |     INVENTREE_DB_NAME: inventree | ||||||
|  |     INVENTREE_MEDIA_ROOT: ./media | ||||||
|  |     INVENTREE_STATIC_ROOT: ./static | ||||||
|  |     INVENTREE_BACKUP_DIR: ./backup | ||||||
|  |     INVENTREE_PLUGINS_ENABLED: true | ||||||
|  |  | ||||||
|  | - task: PublishTestResults@2 | ||||||
|  |   inputs: | ||||||
|  |     testResultsFiles: "**/TEST-*.xml" | ||||||
|  |     testRunTitle: 'Python $(PYTHON_VERSION)' | ||||||
|  |   condition: succeededOrFailed() | ||||||
|  |  | ||||||
|  | - task: PublishCodeCoverageResults@1 | ||||||
|  |   inputs: | ||||||
|  |     codeCoverageTool: Cobertura | ||||||
|  |     summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml' | ||||||
		Reference in New Issue
	
	Block a user