# Current docs for the syntax of this file are at: # https://github.com/Microsoft/vsts-agent/blob/master/docs/preview/yamlgettingstarted.md name: $(BuildDefinitionName)_$(Date:yyyyMMdd)$(Rev:.rr) queue: name: Hosted Linux Preview trigger: branches: include: - master - 3.7 - 3.6 paths: exclude: - Doc/* - Tools/* variables: # Copy-pasted from linux-deps.yml until template support arrives OPENSSL: 1.1.0g OPENSSL_DIR: "$(build.sourcesDirectory)/multissl/openssl/$(OPENSSL)" steps: - checkout: self clean: true fetchDepth: 5 - script: | git fetch -q origin $(system.pullRequest.targetBranch) if ! git diff --name-only HEAD $(git merge-base HEAD FETCH_HEAD) | grep -qvE '(\.rst$|^Doc|^Misc)' then echo "Only docs were updated, stopping build process." echo "##vso[task.setvariable variable=DocOnly]true" exit fi displayName: Detect doc-only changes condition: and(succeeded(), variables['system.pullRequest.targetBranch']) #- template: linux-deps.yml # See https://github.com/Microsoft/vsts-agent/blob/master/docs/preview/yamlgettingstarted-templates.md # For now, we copy/paste the steps - script: echo "deb-src http://archive.ubuntu.com/ubuntu/ xenial main" > /etc/apt/sources.list.d/python.list && sudo apt-get update displayName: 'Update apt-get lists' condition: and(succeeded(), ne(variables['DocOnly'], 'true')) - script: echo ##vso[task.prependpath]$(OPENSSL_DIR) displayName: 'Add $(OPENSSL_DIR) to PATH' - script: > sudo apt-get -yq install build-essential zlib1g-dev libbz2-dev liblzma-dev libncurses5-dev libreadline6-dev libsqlite3-dev libssl-dev libgdbm-dev tk-dev lzma lzma-dev liblzma-dev libffi-dev uuid-dev xvfb displayName: 'Install dependencies' condition: and(succeeded(), ne(variables['DocOnly'], 'true')) - script: python3 Tools/ssl/multissltests.py --steps=library --base-directory $(build.sourcesDirectory)/multissl --openssl $(OPENSSL) --system Linux displayName: 'python multissltests.py' condition: and(succeeded(), ne(variables['DocOnly'], 'true')) - script: ./configure --with-pydebug displayName: 'Configure CPython (debug)' condition: and(succeeded(), ne(variables['DocOnly'], 'true')) - script: make -s -j4 displayName: 'Build CPython' condition: and(succeeded(), ne(variables['DocOnly'], 'true')) - script: ./python -m venv venv && ./venv/bin/python -m pip install -U coverage displayName: 'Set up virtual environment' condition: and(succeeded(), ne(variables['DocOnly'], 'true')) - script: ./venv/bin/python -m test.pythoninfo displayName: 'Display build info' condition: and(succeeded(), ne(variables['DocOnly'], 'true')) - script: xvfb-run ./venv/bin/python -m coverage run --pylib -m test --fail-env-changed -uall,-cpu -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_multiprocessing_spawn -x test_concurrent_futures displayName: 'Tests with coverage' condition: and(succeeded(), ne(variables['DocOnly'], 'true')) - script: source ./venv/bin/activate && bash <(curl -s https://codecov.io/bash) displayName: 'Publish code coverage results' condition: and(succeeded(), ne(variables['DocOnly'], 'true'))