diff --git a/azure-pipelines.yml b/azure-pipelines.yml index bedbbd8de..70fc7c676 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -50,190 +50,21 @@ jobs: name: output displayName: 'Determine type of code change' -- template: azure-pipelines-steps.yml - parameters: - versions: ['3.6'] - images: ['ubuntu-18.04'] - package: '-e .[all]' - job: - job: 'Docs' - displayName: 'Build documentation' - dependsOn: 'EvalChanges' - condition: eq(dependencies.EvalChanges.outputs['output.buildDocs'], 'True') - steps: - - script: 'sudo apt-get -yq install graphviz' - displayName: 'Install graphviz' - - - script: 'pip install sklearn-contrib-lightning' - displayName: 'Install lightning' - - - script: 'pip install git+https://github.com/slundberg/shap.git@d1d2700acc0259f211934373826d5ff71ad514de' - displayName: 'Install specific version of shap' - - - script: 'pip install "sphinx < 3.2" sphinx_rtd_theme' - displayName: 'Install sphinx' - - - script: 'python setup.py build_sphinx -W' - displayName: 'Build documentation' - - - publish: 'build/sphinx/html' - artifact: 'Documentation' - displayName: 'Publish documentation as artifact' - - - script: 'python setup.py build_sphinx -b doctest' - displayName: 'Run doctests' - -- template: azure-pipelines-steps.yml - parameters: - versions: ['3.8'] - images: ['ubuntu-18.04'] - package: '-e .[tf,plt]' - job: - job: 'Notebooks' - dependsOn: 'EvalChanges' - condition: eq(dependencies.EvalChanges.outputs['output.buildNbs'], 'True') - steps: - # Work around https://github.com/pypa/pip/issues/9542 - - script: 'pip install -U numpy' - displayName: 'Upgrade numpy' - - - script: 'pip install pytest-runner && python setup.py pytest' - displayName: 'Unit tests' - env: - PYTEST_ADDOPTS: '-m "notebook"' - - - task: PublishTestResults@2 - displayName: 'Publish Test Results **/test-results.xml' - inputs: - testResultsFiles: '**/test-results.xml' - testRunTitle: 'Notebooks' - condition: succeededOrFailed() - -# - job: 'AutoML' -# dependsOn: 'EvalChanges' -# condition: eq(dependencies.EvalChanges.outputs['output.testCode'], 'True') -# variables: -# python.version: '3.6' -# pool: -# vmImage: 'ubuntu-18.04' -# steps: -# - template: azure-pipelines-steps.yml -# parameters: -# body: -# - task: AzureCLI@2 -# displayName: 'AutoML tests' -# inputs: -# azureSubscription: 'automl' -# scriptLocation: 'inlineScript' -# scriptType: 'pscore' -# powerShellIgnoreLASTEXITCODE: '' # string for now due to https://github.com/microsoft/azure-pipelines-tasks/issues/12266 -# inlineScript: | -# $env:SUBSCRIPTION_ID = az account show --query id -o tsv -# python setup.py pytest -# env: -# WORKSPACE_NAME: 'testWorkspace' -# RESOURCE_GROUP: 'testingAutoMLEconML' -# PYTEST_ADDOPTS: '-m "automl" -n 0' -# COVERAGE_PROCESS_START: 'setup.cfg' - -# - task: PublishTestResults@2 -# displayName: 'Publish Test Results **/test-results.xml' -# inputs: -# testResultsFiles: '**/test-results.xml' -# testRunTitle: 'AutoML' -# condition: succeededOrFailed() -# package: '.[automl]' - -- template: azure-pipelines-steps.yml - parameters: - versions: ['3.8'] - images: ['macOS-10.15'] - job: - job: 'Linting' - dependsOn: 'EvalChanges' - condition: eq(dependencies.EvalChanges.outputs['output.testCode'], 'True') - steps: - - script: 'pip install pycodestyle && pycodestyle econml' - failOnStderr: true - displayName: Linting - - template: azure-pipelines-steps.yml parameters: package: '-e .[tf,plt]' + images: ['macOS-10.14','macOS-10.15'] job: job: Tests_main dependsOn: 'EvalChanges' condition: eq(dependencies.EvalChanges.outputs['output.testCode'], 'True') displayName: 'Run tests (main)' steps: + - script: 'pip install psutil && python -c "import psutil; print(psutil.virtual_memory())"' + displayName: 'Memory diagnostic' - script: 'pip install pytest-runner && python setup.py pytest' displayName: 'Unit tests' env: - PYTEST_ADDOPTS: '-m "not (notebook or automl or dml or causal)" -n 2' - COVERAGE_PROCESS_START: 'setup.cfg' - - task: PublishTestResults@2 - displayName: 'Publish Test Results **/test-results.xml' - inputs: - testResultsFiles: '**/test-results.xml' - testRunTitle: 'Python $(python.version), image $(imageName)' - condition: succeededOrFailed() - - - task: PublishCodeCoverageResults@1 - displayName: 'Publish Code Coverage Results' - inputs: - codeCoverageTool: Cobertura - summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml' - -- template: azure-pipelines-steps.yml - parameters: - package: '-e .[tf,plt]' - job: - job: Tests_dml - dependsOn: 'EvalChanges' - condition: eq(dependencies.EvalChanges.outputs['output.testCode'], 'True') - displayName: 'Run tests (DML)' - steps: - - script: 'pip install pytest-runner && python setup.py pytest' - displayName: 'Unit tests' - env: - PYTEST_ADDOPTS: '-m "dml"' - COVERAGE_PROCESS_START: 'setup.cfg' - - task: PublishTestResults@2 - displayName: 'Publish Test Results **/test-results.xml' - inputs: - testResultsFiles: '**/test-results.xml' - testRunTitle: 'Python $(python.version), image $(imageName)' - condition: succeededOrFailed() - - - task: PublishCodeCoverageResults@1 - displayName: 'Publish Code Coverage Results' - inputs: - codeCoverageTool: Cobertura - summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml' - -- template: azure-pipelines-steps.yml - parameters: - package: '-e .[tf,plt]' - job: - job: Tests_causal - dependsOn: 'EvalChanges' - condition: eq(dependencies.EvalChanges.outputs['output.testCode'], 'True') - displayName: 'Run tests (Causal)' - steps: - - script: 'pip install pytest-runner && python setup.py pytest' - displayName: 'Unit tests' - env: - PYTEST_ADDOPTS: '-m "causal" -n 1' - COVERAGE_PROCESS_START: 'setup.cfg' - - task: PublishTestResults@2 - displayName: 'Publish Test Results **/test-results.xml' - inputs: - testResultsFiles: '**/test-results.xml' - testRunTitle: 'Python $(python.version), image $(imageName)' - condition: succeededOrFailed() - - - task: PublishCodeCoverageResults@1 - displayName: 'Publish Code Coverage Results' - inputs: - codeCoverageTool: Cobertura - summaryFileLocation: '$(System.DefaultWorkingDirectory)/**/coverage.xml' \ No newline at end of file + PYTHONMALLOC: debug + PYTHONFAULTHANDLER: 1 + PYTEST_ADDOPTS: '-m "not (notebook or automl or dml or causal)" -n 1'