123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- # 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
- # NOTES:
- #
- # Display name of each step should be prefixed with one of the following:
- # CR-QC: for quality control measures.
- # CR-BUILD: for build-related tasks.
- # CR-DEPLOY: for publication or deployment.
- # [no prefix]: for unrelated CI setup/tooling.
- #
- # Use PowerShell Core for any scripts so they are re-usable across windows/mac/linux.
- #
- trigger:
- - master
- jobs:
- - job: tests
- displayName: Unit Tests
- pool:
- vmImage: 'ubuntu-latest'
- strategy:
- matrix:
- py3.5:
- PYTHON_VERSION: '3.5'
- py3.6:
- PYTHON_VERSION: '3.6'
- py3.7:
- PYTHON_VERSION: '3.7'
-
- steps:
- - task: UsePythonVersion@0
- displayName: 'Use Python version'
- inputs:
- versionSpec: '$(PYTHON_VERSION)'
- architecture: 'x64'
- - script: |
- python -m pip install -e ./[ci_tests]
- displayName: 'CR-QC: Install coderedcms from local repo'
- - script: |
- coderedcms start testproject --name="Test Project" --domain="www.example.com"
- displayName: 'CR-QC: Create starter project from template'
- - script: |
- pytest coderedcms/ --ds=coderedcms.tests.settings --junitxml=junit/test-results.xml --cov=coderedcms --cov-report=xml --cov-report=html
- displayName: 'CR-QC: Run unit tests'
- - task: PublishTestResults@2
- displayName: 'Publish unit test report'
- condition: succeededOrFailed()
- inputs:
- testResultsFiles: '**/test-*.xml'
- testRunTitle: 'Publish test results for Python $(python.version)'
- - task: PublishCodeCoverageResults@1
- displayName: 'Publish code coverage report'
- condition: succeededOrFailed()
- inputs:
- codeCoverageTool: Cobertura
- summaryFileLocation: '$(System.DefaultWorkingDirectory)/coverage.xml'
- - task: DownloadPipelineArtifact@2
- displayName: 'Download code coverage from latest build'
- inputs:
- source: 'specific'
- path: '$(Agent.WorkFolder)/artifacts'
- project: 'cc52b8d8-3ae5-466e-b771-56f3b4749f1f'
- pipeline: 1
- runVersion: 'latestFromBranch'
- runBranch: 'refs/heads/master'
- - pwsh: |
- & ci/run_artifacts.ps1
- displayName: 'Compare code coverage to master'
- - job: style
- displayName: Static Analysis
- pool:
- vmImage: 'ubuntu-latest'
- steps:
- - task: UsePythonVersion@0
- displayName: 'Use Python version'
- inputs:
- versionSpec: '3.7'
- architecture: 'x64'
- - script: |
- python -m pip install -e ./[ci_style]
- displayName: 'CR-QC: Install coderedcms from local repo'
- - script: |
- coderedcms start testproject
- displayName: 'CR-QC: Generate a test project'
- - pwsh: |
- & ci/run_flake8.ps1
- displayName: 'CR-QC: Static analysis (flake8)'
|