core/azure-pipelines-ci.yml

81 lines
2.2 KiB
YAML
Raw Normal View History

2019-06-07 16:38:05 +00:00
# https://dev.azure.com/home-assistant
trigger:
batch: true
branches:
include:
- dev
pr: none
variables:
- name: ArtifactFeed
value: '2df3ae11-3bf6-49bc-a809-ba0d340d6a6d'
2019-06-07 16:38:05 +00:00
jobs:
- job: 'Check'
2019-06-07 16:38:05 +00:00
pool:
vmImage: 'ubuntu-latest'
strategy:
maxParallel: 2
2019-06-07 16:38:05 +00:00
matrix:
Python35:
python.version: '3.5'
Python36:
python.version: '3.6'
Python37:
python.version: '3.7'
steps:
- task: UsePythonVersion@0
displayName: 'Use Python $(python.version)'
inputs:
versionSpec: '$(python.version)'
- script: |
sudo add-apt-repository ppa:jonathonf/ffmpeg-4
2019-06-07 16:38:05 +00:00
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
libudev libavformat libavcodec libavdevice libavutil libswscale libswresample libavfilter
echo "$(python.version)" > .cache
2019-06-07 16:38:05 +00:00
displayName: 'Set up docker prerequisite requirement'
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
displayName: 'Restore artifacts based on Requirements'
inputs:
keyfile: 'requirements_test_all.txt, .cache'
targetfolder: './venv'
2019-06-07 16:38:05 +00:00
vstsFeed: '$(ArtifactFeed)'
- script: |
# Install build env
sudo apt-get install -y --no-install-recommends \
libudev-dev libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev libswscale-dev libswresample-dev libavfilter-dev
# Setup venv
2019-06-07 16:38:05 +00:00
python3 -m venv venv
2019-06-07 16:38:05 +00:00
. venv/bin/activate
pip install -U pip setuptools
pip3 install -r requirements_test_all.txt -c homeassistant/package_constraints.txt
2019-06-07 16:38:05 +00:00
displayName: 'Create Virtual Environment & Install Requirements'
condition: ne(variables['CacheRestored'], 'true')
2019-06-07 16:38:05 +00:00
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
displayName: 'Save artifacts based on Requirements'
inputs:
keyfile: 'requirements_test_all.txt, .cache'
targetfolder: './venv'
vstsFeed: '$(ArtifactFeed)'
- script: |
. venv/bin/activate
pip install -e .
displayName: 'Install Home Assistant for python $(python.version)'
- script: |
. venv/bin/activate
pytest --timeout=9 --durations=10 tests
displayName: 'Run pytest for python $(python.version)'