forked from home-assistant/core
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'upstream/master'
- Loading branch information
Showing
6,302 changed files
with
344,850 additions
and
256,995 deletions.
The diff you're trying to view is too large. We only load the first 3000 changed files.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,272 @@ | ||
# Python CircleCI 2.0 configuration file | ||
# | ||
# Check https://circleci.com/docs/2.0/language-python/ for more details | ||
# | ||
version: 2.1 | ||
|
||
executors: | ||
|
||
python: | ||
parameters: | ||
tag: | ||
type: string | ||
default: latest | ||
docker: | ||
- image: circleci/python:<< parameters.tag >> | ||
- image: circleci/buildpack-deps:stretch | ||
working_directory: ~/repo | ||
|
||
commands: | ||
|
||
docker-prereqs: | ||
description: Set up docker prerequisite requirement | ||
steps: | ||
- run: sudo apt-get update && sudo apt-get install -y --no-install-recommends | ||
libudev-dev libavformat-dev libavcodec-dev libavdevice-dev libavutil-dev | ||
libswscale-dev libswresample-dev libavfilter-dev | ||
|
||
install-requirements: | ||
description: Set up venv and install requirements python packages with cache support | ||
parameters: | ||
python: | ||
type: string | ||
default: latest | ||
all: | ||
description: pip install -r requirements_all.txt | ||
type: boolean | ||
default: false | ||
test: | ||
description: pip install -r requirements_test.txt | ||
type: boolean | ||
default: false | ||
test_all: | ||
description: pip install -r requirements_test_all.txt | ||
type: boolean | ||
default: false | ||
steps: | ||
- restore_cache: | ||
keys: | ||
- v1-<< parameters.python >>-{{ checksum "homeassistant/package_constraints.txt" }}-<<# parameters.all >>{{ checksum "requirements_all.txt" }}<</ parameters.all>>-<<# parameters.test >>{{ checksum "requirements_test.txt" }}<</ parameters.test>>-<<# parameters.test_all >>{{ checksum "requirements_test_all.txt" }}<</ parameters.test_all>> | ||
- run: | ||
name: install dependencies | ||
command: | | ||
python3 -m venv venv | ||
. venv/bin/activate | ||
pip install -q -U pip | ||
pip install -q -U setuptools | ||
<<# parameters.all >>pip install -q --progress-bar off -r requirements_all.txt -c homeassistant/package_constraints.txt<</ parameters.all>> | ||
<<# parameters.test >>pip install -q --progress-bar off -r requirements_test.txt -c homeassistant/package_constraints.txt<</ parameters.test>> | ||
<<# parameters.test_all >>pip install -q --progress-bar off -r requirements_test_all.txt -c homeassistant/package_constraints.txt<</ parameters.test_all>> | ||
no_output_timeout: 15m | ||
- save_cache: | ||
paths: | ||
- ./venv | ||
key: v1-<< parameters.python >>-{{ checksum "homeassistant/package_constraints.txt" }}-<<# parameters.all >>{{ checksum "requirements_all.txt" }}<</ parameters.all>>-<<# parameters.test >>{{ checksum "requirements_test.txt" }}<</ parameters.test>>-<<# parameters.test_all >>{{ checksum "requirements_test_all.txt" }}<</ parameters.test_all>> | ||
|
||
install: | ||
description: Install Home Assistant | ||
steps: | ||
- run: | ||
name: install | ||
command: | | ||
. venv/bin/activate | ||
pip install -q --progress-bar off -e . | ||
jobs: | ||
|
||
static-check: | ||
executor: | ||
name: python | ||
tag: 3.5.5-stretch | ||
|
||
steps: | ||
- checkout | ||
- docker-prereqs | ||
- install-requirements: | ||
python: 3.5.5-stretch | ||
test: true | ||
|
||
- run: | ||
name: run static check | ||
command: | | ||
. venv/bin/activate | ||
flake8 | ||
- run: | ||
name: run static type check | ||
command: | | ||
. venv/bin/activate | ||
TYPING_FILES=$(cat mypyrc) | ||
mypy $TYPING_FILES | ||
- install | ||
|
||
- run: | ||
name: validate manifests | ||
command: | | ||
. venv/bin/activate | ||
python -m script.hassfest validate | ||
- run: | ||
name: run gen_requirements_all | ||
command: | | ||
. venv/bin/activate | ||
python script/gen_requirements_all.py validate | ||
pre-install-all-requirements: | ||
executor: | ||
name: python | ||
tag: 3.5.5-stretch | ||
|
||
steps: | ||
- checkout | ||
- docker-prereqs | ||
- install-requirements: | ||
python: 3.5.5-stretch | ||
all: true | ||
test: true | ||
|
||
pylint: | ||
executor: | ||
name: python | ||
tag: 3.5.5-stretch | ||
parallelism: 2 | ||
|
||
steps: | ||
- checkout | ||
- docker-prereqs | ||
- install-requirements: | ||
python: 3.5.5-stretch | ||
all: true | ||
test: true | ||
- install | ||
|
||
- run: | ||
name: run pylint | ||
command: | | ||
. venv/bin/activate | ||
PYFILES=$(circleci tests glob "homeassistant/**/*.py" | circleci tests split) | ||
pylint ${PYFILES} | ||
no_output_timeout: 15m | ||
|
||
pre-test: | ||
parameters: | ||
python: | ||
type: string | ||
executor: | ||
name: python | ||
tag: << parameters.python >> | ||
|
||
steps: | ||
- checkout | ||
- docker-prereqs | ||
- install-requirements: | ||
python: << parameters.python >> | ||
test_all: true | ||
|
||
test: | ||
parameters: | ||
python: | ||
type: string | ||
executor: | ||
name: python | ||
tag: << parameters.python >> | ||
parallelism: 2 | ||
|
||
steps: | ||
- checkout | ||
- docker-prereqs | ||
- install-requirements: | ||
python: << parameters.python >> | ||
test_all: true | ||
- install | ||
|
||
- run: | ||
name: run tests with code coverage | ||
command: | | ||
. venv/bin/activate | ||
CC_SWITCH="--cov --cov-report=" | ||
TESTFILES=$(circleci tests glob "tests/**/test_*.py" | circleci tests split --split-by=timings) | ||
pytest --timeout=9 --durations=10 --junitxml=test-reports/homeassistant/results.xml -qq -o junit_family=xunit2 -o junit_suite_name=homeassistant -o console_output_style=count -p no:sugar $CC_SWITCH -- ${TESTFILES} | ||
script/check_dirty | ||
codecov | ||
- store_test_results: | ||
path: test-reports | ||
|
||
- store_artifacts: | ||
path: htmlcov | ||
destination: cov-reports | ||
|
||
- store_artifacts: | ||
path: test-reports | ||
destination: test-reports | ||
|
||
# This job use machine executor, e.g. classic CircleCI VM because we need both lokalise-cli and a Python runtime. | ||
# Classic CircleCI included python 2.7.12 and python 3.5.2 managed by pyenv, the Python version may need change if | ||
# CircleCI changed its VM in future. | ||
upload-translations: | ||
machine: true | ||
|
||
steps: | ||
- checkout | ||
|
||
- run: | ||
name: upload english translations | ||
command: | | ||
pyenv versions | ||
pyenv global 3.5.2 | ||
docker pull lokalise/lokalise-cli@sha256:2198814ebddfda56ee041a4b427521757dd57f75415ea9693696a64c550cef21 | ||
script/translations_upload | ||
workflows: | ||
version: 2 | ||
build: | ||
jobs: | ||
- static-check | ||
- pre-install-all-requirements: | ||
requires: | ||
- static-check | ||
- pylint: | ||
requires: | ||
- pre-install-all-requirements | ||
- pre-test: | ||
name: pre-test 3.5.5 | ||
requires: | ||
- static-check | ||
python: 3.5.5-stretch | ||
- pre-test: | ||
name: pre-test 3.6 | ||
requires: | ||
- static-check | ||
python: 3.6-stretch | ||
- pre-test: | ||
name: pre-test 3.7 | ||
requires: | ||
- static-check | ||
python: 3.7-stretch | ||
- test: | ||
name: test 3.5.5 | ||
requires: | ||
- pre-test 3.5.5 | ||
python: 3.5.5-stretch | ||
- test: | ||
name: test 3.6 | ||
requires: | ||
- pre-test 3.6 | ||
python: 3.6-stretch | ||
- test: | ||
name: test 3.7 | ||
requires: | ||
- pre-test 3.7 | ||
python: 3.7-stretch | ||
# CircleCI does not allow failure yet | ||
# - test: | ||
# name: test 3.8 | ||
# python: 3.8-rc-stretch | ||
- upload-translations: | ||
requires: | ||
- static-check | ||
filters: | ||
branches: | ||
only: dev |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
codecov: | ||
branch: dev | ||
coverage: | ||
status: | ||
project: | ||
default: | ||
target: 90 | ||
threshold: 0.09 | ||
notify: | ||
# Notify codecov room in Discord. The webhook URL (encrypted below) ends in /slack which is why we configure a Slack notification. | ||
slack: | ||
default: | ||
url: "secret:TgWDUM4Jw0w7wMJxuxNF/yhSOHglIo1fGwInJnRLEVPy2P2aLimkoK1mtKCowH5TFw+baUXVXT3eAqefbdvIuM8BjRR4aRji95C6CYyD0QHy4N8i7nn1SQkWDPpS8IthYTg07rUDF7s5guurkKv2RrgoCdnnqjAMSzHoExMOF7xUmblMdhBTWJgBpWEhASJy85w/xxjlsE1xoTkzeJu9Q67pTXtRcn+5kb5/vIzPSYg=" | ||
comment: | ||
require_changes: yes |
Oops, something went wrong.