Python 3.8 on CI (#34654)

This commit is contained in:
Pascal Vizeli 2020-04-26 01:54:41 +02:00 committed by GitHub
parent e7f8d6bbf7
commit 9ca2ad53f9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 197 additions and 191 deletions

View File

@ -1,7 +1,10 @@
FROM python:3.7
FROM python:3.8
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
RUN \
&& apt-get update && apt-get install -y --no-install-recommends \
software-properties-common \
&& add-apt-repository ppa:jonathonf/ffmpeg-4 \
&& apt-get update && apt-get install -y --no-install-recommends \
libudev-dev \
libavformat-dev \
libavcodec-dev \

View File

@ -16,27 +16,28 @@ resources:
containers:
- container: 37
image: homeassistant/ci-azure:3.7
- container: 38
image: homeassistant/ci-azure:3.8
repositories:
- repository: azure
type: github
name: 'home-assistant/ci-azure'
endpoint: 'home-assistant'
name: "home-assistant/ci-azure"
endpoint: "home-assistant"
variables:
- name: PythonMain
value: '37'
value: "37"
stages:
- stage: 'Overview'
- stage: "Overview"
jobs:
- job: 'Lint'
- job: "Lint"
pool:
vmImage: 'ubuntu-latest'
vmImage: "ubuntu-latest"
container: $[ variables['PythonMain'] ]
steps:
- template: templates/azp-step-cache.yaml@azure
parameters:
keyfile: 'requirements_test.txt | homeassistant/package_constraints.txt'
keyfile: "requirements_test.txt | homeassistant/package_constraints.txt"
build: |
python -m venv venv
@ -46,49 +47,49 @@ stages:
- script: |
. venv/bin/activate
pre-commit run --hook-stage manual check-executables-have-shebangs --all-files
displayName: 'Run executables check'
displayName: "Run executables check"
- script: |
. venv/bin/activate
pre-commit run codespell --all-files
displayName: 'Run codespell'
displayName: "Run codespell"
- script: |
. venv/bin/activate
pre-commit run flake8 --all-files
displayName: 'Run flake8'
displayName: "Run flake8"
- script: |
. venv/bin/activate
pre-commit run bandit --all-files
displayName: 'Run bandit'
displayName: "Run bandit"
- script: |
. venv/bin/activate
pre-commit run isort --all-files --show-diff-on-failure
displayName: 'Run isort'
displayName: "Run isort"
- script: |
. venv/bin/activate
pre-commit run check-json --all-files
displayName: 'Run check-json'
displayName: "Run check-json"
- script: |
. venv/bin/activate
pre-commit run yamllint --all-files
displayName: 'Run yamllint'
displayName: "Run yamllint"
- script: |
. venv/bin/activate
pre-commit run pyupgrade --all-files --show-diff-on-failure
displayName: 'Run pyupgrade'
displayName: "Run pyupgrade"
# Prettier seems to hang on Azure, unknown why yet.
# Temporarily disable the check to no block PRs
# - script: |
# . venv/bin/activate
# pre-commit run prettier --all-files --show-diff-on-failure
# displayName: 'Run prettier'
- job: 'Validate'
- job: "Validate"
pool:
vmImage: 'ubuntu-latest'
vmImage: "ubuntu-latest"
container: $[ variables['PythonMain'] ]
steps:
- template: templates/azp-step-cache.yaml@azure
parameters:
keyfile: 'homeassistant/package_constraints.txt'
keyfile: "homeassistant/package_constraints.txt"
build: |
python -m venv venv
@ -97,19 +98,19 @@ stages:
- script: |
. venv/bin/activate
python -m script.hassfest --action validate
displayName: 'Validate manifests'
displayName: "Validate manifests"
- script: |
. venv/bin/activate
./script/gen_requirements_all.py validate
displayName: 'requirements_all validate'
- job: 'CheckFormat'
displayName: "requirements_all validate"
- job: "CheckFormat"
pool:
vmImage: 'ubuntu-latest'
vmImage: "ubuntu-latest"
container: $[ variables['PythonMain'] ]
steps:
- template: templates/azp-step-cache.yaml@azure
parameters:
keyfile: 'requirements_test.txt | homeassistant/package_constraints.txt'
keyfile: "requirements_test.txt | homeassistant/package_constraints.txt"
build: |
python -m venv venv
@ -119,25 +120,27 @@ stages:
- script: |
. venv/bin/activate
pre-commit run black --all-files --show-diff-on-failure
displayName: 'Check Black formatting'
displayName: "Check Black formatting"
- stage: 'Tests'
- stage: "Tests"
dependsOn:
- 'Overview'
- "Overview"
jobs:
- job: 'PyTest'
- job: "PyTest"
pool:
vmImage: 'ubuntu-latest'
vmImage: "ubuntu-latest"
strategy:
maxParallel: 3
matrix:
Python37:
python.container: '37'
python.container: "37"
Python38:
python.container: "38"
container: $[ variables['python.container'] ]
steps:
- template: templates/azp-step-cache.yaml@azure
parameters:
keyfile: 'requirements_test_all.txt | homeassistant/package_constraints.txt'
keyfile: "requirements_test_all.txt | homeassistant/package_constraints.txt"
build: |
set -e
python -m venv venv
@ -151,14 +154,14 @@ stages:
- script: |
. venv/bin/activate
pip install -e .
displayName: 'Install Home Assistant'
displayName: "Install Home Assistant"
- script: |
set -e
. venv/bin/activate
pytest --timeout=9 --durations=10 -n auto --dist=loadfile -qq -o console_output_style=count -p no:sugar tests
script/check_dirty
displayName: 'Run pytest for python $(python.container)'
displayName: "Run pytest for python $(python.container)"
condition: and(succeeded(), ne(variables['python.container'], variables['PythonMain']))
- script: |
set -e
@ -167,21 +170,21 @@ stages:
pytest --timeout=9 --durations=10 -n auto --dist=loadfile --cov homeassistant --cov-report html -qq -o console_output_style=count -p no:sugar tests
codecov --token $(codecovToken)
script/check_dirty
displayName: 'Run pytest for python $(python.container) / coverage'
displayName: "Run pytest for python $(python.container) / coverage"
condition: and(succeeded(), eq(variables['python.container'], variables['PythonMain']))
- stage: 'FullCheck'
- stage: "FullCheck"
dependsOn:
- 'Overview'
- "Overview"
jobs:
- job: 'Pylint'
- job: "Pylint"
pool:
vmImage: 'ubuntu-latest'
vmImage: "ubuntu-latest"
container: $[ variables['PythonMain'] ]
steps:
- template: templates/azp-step-cache.yaml@azure
parameters:
keyfile: 'requirements_all.txt | requirements_test.txt | homeassistant/package_constraints.txt'
keyfile: "requirements_all.txt | requirements_test.txt | homeassistant/package_constraints.txt"
build: |
set -e
python -m venv venv
@ -193,19 +196,19 @@ stages:
- script: |
. venv/bin/activate
pip install -e .
displayName: 'Install Home Assistant'
displayName: "Install Home Assistant"
- script: |
. venv/bin/activate
pylint homeassistant
displayName: 'Run pylint'
- job: 'Mypy'
displayName: "Run pylint"
- job: "Mypy"
pool:
vmImage: 'ubuntu-latest'
vmImage: "ubuntu-latest"
container: $[ variables['PythonMain'] ]
steps:
- template: templates/azp-step-cache.yaml@azure
parameters:
keyfile: 'requirements_test.txt | setup.py | homeassistant/package_constraints.txt'
keyfile: "requirements_test.txt | setup.py | homeassistant/package_constraints.txt"
build: |
python -m venv venv
@ -215,4 +218,4 @@ stages:
- script: |
. venv/bin/activate
pre-commit run mypy --all-files
displayName: 'Run mypy'
displayName: "Run mypy"