diff --git a/.azure-pipelines.yml b/.azure-pipelines.yml index 6ba0a4d2..f9e2d0c3 100644 --- a/.azure-pipelines.yml +++ b/.azure-pipelines.yml @@ -1,53 +1,79 @@ trigger: -- master +- 'master' +- '*-maintenance' -variables: - vmImage: ubuntu-latest - python.version: '3.7' - TOXENV: 'py,codecov' - python.architecture: 'x64' +jobs: +- job: Flask + variables: + vmImage: ubuntu-latest + python.version: '3.7' + TOXENV: 'py,codecov' + python.architecture: 'x64' + publish.test.results: 'true' -strategy: - matrix: - Python37Linux: - python.version: '3.7' - Python37Windows: - python.version: '3.7' - vmImage: 'windows-latest' - Python37Mac: - python.version: '3.7' - vmImage: 'macos-latest' - Pypy3Linux: - python.version: 'pypy3' - Python36Linux: - python.version: '3.6' - Python35Linux: - python.version: '3.5' - Python27Linux: - python.version: '2.7' - Python27Windows: - python.version: '2.7' - vmImage: 'windows-latest' - DocsHtml: - TOXENV: docs-html - VersionRange: - TOXENV: devel,lowest,codecov + strategy: + matrix: + Python37Linux: + python.version: '3.7' + Python37Windows: + python.version: '3.7' + vmImage: 'windows-latest' + Python37Mac: + python.version: '3.7' + vmImage: 'macos-latest' + Pypy3Linux: + python.version: 'pypy3' + Python36Linux: + python.version: '3.6' + Python35Linux: + python.version: '3.5' + Python27Linux: + python.version: '2.7' + Python27Windows: + python.version: '2.7' + vmImage: 'windows-latest' + DocsHtml: + TOXENV: docs-html + publish.test.results: 'false' + VersionRange: + TOXENV: devel,lowest,codecov -pool: - vmImage: $[ variables.vmImage ] + pool: + vmImage: $[ variables.vmImage ] -steps: -- task: UsePythonVersion@0 - inputs: - versionSpec: $(python.version) - architecture: $(python.architecture) + steps: + - task: UsePythonVersion@0 + inputs: + versionSpec: $(python.version) + architecture: $(python.architecture) -- script: pip install -U tox - displayName: 'Install tox' + - script: pip install -U tox + displayName: 'Install tox' -- script: tox - displayName: 'Run tox' + - script: tox + displayName: 'Run tox' -# TODO: add codecov token -# TODO: emit JUnit test results -# TODO: build on nightly + - task: PublishTestResults@2 + inputs: + testResultsFiles: 'test-results.xml' + testRunTitle: '$(Agent.JobName)' + condition: eq(variables['publish.test.results'], 'true') + + # TODO: add codecov token + +# As a courtesy, try this on the dev version of Python +# Use a container since Azure Pipelines may not have the bleeding-edge Python RC +- job: FlaskOnLatest + pool: { vmImage: ubuntu-latest } + variables: + TOXENV: 'future' + container: python:rc-stretch + steps: + - script: | + echo "##vso[task.prependPath]$HOME/.local/bin" + pip install -U --user tox + displayName: 'Install tox' + + # don't fail the build if this doesn't work! + - script: tox + displayName: 'Run tox' diff --git a/tox.ini b/tox.ini index 22848681..2afa66d0 100644 --- a/tox.ini +++ b/tox.ini @@ -35,6 +35,15 @@ commands = pip install -q -e examples/javascript[test] # pytest-cov doesn't seem to play nice with -p + coverage run -p -m pytest --junitxml=test-results.xml tests examples + +[testenv:future] +ignore_outcome = true + +commands = + pip install -q -e examples/tutorial[test] + pip install -q -e examples/javascript[test] + coverage run -p -m pytest tests examples [testenv:stylecheck] @@ -56,7 +65,7 @@ commands = coverage html [testenv:codecov] -passenv = CI TRAVIS TRAVIS_* APPVEYOR APPVEYOR_* +passenv = CI TRAVIS TRAVIS_* APPVEYOR APPVEYOR_* BUILD_* SYSTEM_* AGENT_* TF_BUILD deps = codecov skip_install = true commands =