Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1319 commits
Select commit Hold shift + click to select a range
8d551e3
Deprecate Transmission YAML configuration (#50648)
frenck May 15, 2021
117860f
Update Hue IoT Class to Local Push (#50637)
frenck May 15, 2021
c9b25fe
Remove YAML configuration from Local IP (#50642)
frenck May 15, 2021
599db74
Deprecate Mikrotik YAML configuration (#50649)
frenck May 15, 2021
d72a10a
Deprecate Plum Lightpad YAML configuration (#50650)
frenck May 15, 2021
625e6ce
Deprecate Soma Connect YAML configuration (#50651)
frenck May 15, 2021
b2c0beb
Deprecate VeSync YAML configuration (#50652)
frenck May 15, 2021
00e9073
Deprecate Islamic Prayer Times YAML configuration (#50654)
frenck May 15, 2021
c6860dc
Deprecate JuiceNet YAML configuration (#50655)
frenck May 15, 2021
8a135ce
Deprecate Meteo-France YAML configuration (#50658)
frenck May 15, 2021
7ae050c
Upgrade watchdog to 2.1.1 (#50659)
frenck May 15, 2021
f84ceee
Bump OpenCV 4.4.0.42 (#50640)
pvizeli May 15, 2021
4025443
Upgrade black to 21.5b1 (#50661)
frenck May 15, 2021
bdc1ab2
Flic bump lib to 2.0.3 (#50483)
DavidDeSloovere May 15, 2021
5ce07e6
Upgrade flake8 to 3.9.2 (#50664)
frenck May 15, 2021
71c2169
Upgrade flake8-comprehensions to 3.5.0 (#50665)
frenck May 15, 2021
64a6a75
Upgrade pyupgrade to v2.15.0 (#50666)
frenck May 15, 2021
bdeeb54
Deprecate PVPC YAML configuration (#50656)
frenck May 15, 2021
8e38f26
Add support for asair brand to nexia (#50504)
bdraco May 15, 2021
d84962b
Fix smhi retry (#50673)
MartinHjelmare May 15, 2021
7b5fff3
Add targets and selectors for services (X-Z) (#50639)
tkdrob May 15, 2021
c1be4cb
Upgrade numpy to 1.20.3 (#50660)
frenck May 15, 2021
f142f29
Add PV3 / DC3 sensors to Kostal Plenticore (#50614)
SaSa1983 May 15, 2021
97d7037
Bump hatasmota to 0.2.13 (#50662)
emontnemery May 15, 2021
de77e0b
Upgrade pylint to 2.8.2 (#50669)
frenck May 15, 2021
aa6b26c
Upgrade defusedxml to 0.7.1 (#50671)
frenck May 15, 2021
990b7c3
Upgrade PyTurboJPEG to 1.5.0 (#50670)
frenck May 15, 2021
ad7be91
Fix modbus blocking threads (#50619)
janiversen May 15, 2021
562e0d7
Add strict type annotations to acer_projector (#50657)
mib1185 May 15, 2021
dab66a5
Clean smhi tests (#50681)
MartinHjelmare May 15, 2021
0c37eff
Add SSL support to TCP integration (#48060)
fopina May 15, 2021
e1dd479
Add Garages Amsterdam integration (#43157)
klaasnicolaas May 15, 2021
1afb0a0
Sonos improve radio metadata handling (#50493)
jjlawren May 15, 2021
cad41cd
Clean up unused method from SolarEdge tests (#50684)
frenck May 15, 2021
5da64d0
Fix smhi typing (#50690)
MartinHjelmare May 15, 2021
ca55854
Use mock_restore_state in testing of modbus sensor (#50455)
janiversen May 15, 2021
8bc75e9
Add color effect to Shelly's color devices (#48052)
chemelli74 May 15, 2021
e293d35
Clean up WLED tests (#50685)
frenck May 15, 2021
bc006c9
Add strict type annotations to aftership (#50692)
mib1185 May 15, 2021
7f6b8bb
Add strict type annotations to aladdin_connect (#50693)
mib1185 May 15, 2021
256a2de
Add kraken code review changes (#50683)
eifinger May 15, 2021
edccb7e
Add strict type annotations to actiontect (#50672)
mib1185 May 15, 2021
b871377
Make confirmable notification blueprint use unique actions (#50706)
zacwest May 16, 2021
a92acdb
Fix selectors and defaults in LCN service.yaml (#50705)
alengwenus May 16, 2021
222336a
Create KNX scene entities directly from config (#50686)
farmio May 16, 2021
0556c35
Set zwave_js cover device_class for shutters and blinds (#50643)
deiger May 16, 2021
1e11bfa
Create KNX fan entities directly from config (#50702)
farmio May 16, 2021
224cc77
Correct Modbus platform cover restore state (#50421)
janiversen May 16, 2021
b84cf91
Centralize storage and updating of Sonos favorites (#50581)
jjlawren May 16, 2021
c2e2b04
Add new voices for Watson TTS (#48722)
demikl May 16, 2021
3200b01
Create KNX notify entities directly from config (#50709)
farmio May 16, 2021
703456a
Better errors handling in mypy hassfest plugin (#50689)
KapJI May 16, 2021
89dd329
Initial draft of statistics (#49852)
emontnemery May 16, 2021
05c6f3c
Create KNX light entities directly from config (#50700)
farmio May 16, 2021
6b38ada
Downgrade setuptools to fix CI (#50734)
KapJI May 17, 2021
22d8f95
Fix configflow strings for step user in fritz (#50742)
mib1185 May 17, 2021
db73318
AlexaEqualizerController fix wrong class beeing used (#50724)
starkillerOG May 17, 2021
877cb43
[ci skip] Translation update
May 17, 2021
1b74359
Disable free-mobile because requirement breaks setuptools (#50749)
balloob May 17, 2021
120bf8a
fix annotation in actiontec (#50727)
mib1185 May 17, 2021
663c037
Add full typing to kraken (#50718)
eifinger May 17, 2021
5ea2dd8
Alexa: Set Equalizer property to retrievable (#50730)
balloob May 17, 2021
636528d
Update bravia-tv to 1.0.11 (#50726)
dcnielsen90 May 17, 2021
a414cad
Upgrade aiodns to 3.0.0 (#50712)
frenck May 17, 2021
059e7c9
Remove side effects from Watson TTS init (#50716)
frenck May 17, 2021
4357d2d
Update AEMET library to latest version (#50222)
Noltari May 17, 2021
2d29959
Add control of hardware buttons to Sonos (#49977)
mountainsandcode May 17, 2021
f9c7474
Add strict type annotations to ampio (#50699)
mib1185 May 17, 2021
7b18860
Update xknx to version 0.18.2 (#50491)
farmio May 17, 2021
ff856a9
Simplify calls to pymodbus (#50717)
janiversen May 17, 2021
ecac574
Upgrade pyupgrade to v2.16.0 (#50756)
frenck May 17, 2021
9ee3b77
Remove discovery from iCloud (#50751)
frenck May 17, 2021
1c7242a
Create KNX cover entities directly from config (#50707)
farmio May 17, 2021
9316f56
Rescan static wemo (#49934)
CantankerousBullMoose May 17, 2021
74c20cd
Upgrade geopy to 2.1.0 (#50714)
frenck May 17, 2021
3ab14d4
Refactor MQTT basic light pt1: Add add_topic helper (#50759)
emontnemery May 17, 2021
a9c73ac
Fix armed_night logic in totalconnect alarm and add tests (#50694)
austinmroczek May 17, 2021
ee4e14e
Hoist ATTR_LAST_RESET from utility_meter to SensorEntity (#50757)
emontnemery May 17, 2021
eccefd1
Extend targets for entity component services (#50760)
frenck May 17, 2021
9e86602
Fix strings for UPNP (#50762)
chemelli74 May 17, 2021
df6862a
Add strict type annotations to amazon_polly (#50697)
mib1185 May 17, 2021
0fac3cc
Change Modbus error message to bytes (#50725)
nikito7 May 17, 2021
9755908
Allow some failures before setting Xiaomi Miio MIOT air purifiers una…
bieniu May 17, 2021
6b34ba0
Fix missing await in modbus platforms (followup on async PR) (#50710)
janiversen May 17, 2021
add594a
Clean up smhi redundant code (#50765)
MartinHjelmare May 17, 2021
b36021b
Deduplicate code in MQTT basic light pt2: Add restore_state helper (#…
emontnemery May 17, 2021
8c6f4a8
Refactor MQTT basic light pt3: Add publish helper (#50767)
emontnemery May 17, 2021
9afa7df
Upgrade apprise to 0.9.3 (#50769)
frenck May 17, 2021
ac6d99d
Create KNX binary_sensor entities directly from config (#50708)
farmio May 17, 2021
2f10f59
Block custom integrations with missing or invalid version (#49916)
ludeeus May 17, 2021
848ab5c
Deduplicate code in MQTT basic light pt4: Add set_optimistic helper (…
emontnemery May 17, 2021
8dc8e88
Bump home-assistant/builder from 2021.04.2 to 2021.05.0 (#50754)
dependabot[bot] May 17, 2021
c848687
Update devcontainer to Python 3.9 (#50778)
ludeeus May 17, 2021
56774a9
Hue: unique ID for groups + remote events (#50748)
balloob May 17, 2021
72dfa86
Enable strict typing for air_quality component (#50722)
KapJI May 17, 2021
3554316
Update MQTT cover template handling (#50236)
m1ch May 17, 2021
7228871
Increase the sqlite cache size from ~2MiB to 8MiB (#50747)
bdraco May 17, 2021
1e10772
Add support for local push channels to mobile_app (#50750)
balloob May 17, 2021
5ad71b5
Define sync hass.create_task function (#50788)
KapJI May 17, 2021
f762d3c
Fire time changed event in Hue tests (#50783)
balloob May 17, 2021
ba827db
Update remaining modbus platforms to use pymodbus_call (#50768)
janiversen May 17, 2021
6f7ae37
Bump yalesmartalarmclient to 0.3.3 (#50613)
gjohansson-ST May 17, 2021
b1ff9dc
Bump pysonos to 0.0.47 (#50792)
jjlawren May 17, 2021
e7f7e61
Ensure a wal checkpoint is scheduled nightly (#50746)
bdraco May 17, 2021
9e681cd
Refactor MQTT basic light pt5: Add RGB color helpers (#50780)
emontnemery May 17, 2021
8129db1
Handle Sonos subscription renewal failures (#50793)
jjlawren May 17, 2021
a43561e
Ensure startup can proceed if async_get_integration raises (#50799)
bdraco May 17, 2021
781524e
Updated frontend to 20210517.0 (#50804)
balloob May 17, 2021
1ea0d8a
Correct trace of condition actions (#50800)
emontnemery May 17, 2021
1f80def
[ci skip] Translation update
May 18, 2021
2e10370
Allow camera stream to fail safely (#50728)
dermotduffy May 18, 2021
7a60d0e
Enable back free-mobile (#50802)
thecode May 18, 2021
3cc3cac
Start ServiceBrowser as soon as possible in zeroconf (#50784)
bdraco May 18, 2021
5da0191
Bump zeroconf to 0.31.0 (#50807)
bdraco May 18, 2021
9abf43f
Mqtt fan feature for resetting current speed `percentage` or `preset_…
jbouwh May 18, 2021
1d174a1
Bump pysonos to 0.0.48 (#50798)
AaronDavidSchneider May 18, 2021
775af9d
Update PyISY to v3.0.0 and ISY994 to use Async IO (#50806)
shbatm May 18, 2021
2cd2e46
Disable AVM FRITZ!Box Tools device_tracker entities by default (#50791)
mib1185 May 18, 2021
c890966
Updated frontend to 20210518.0 (#50842)
balloob May 18, 2021
0a49de7
[ci skip] Translation update
May 19, 2021
26a99df
Capture error when speedtest module fails to identify best server (#5…
RogerSelwyn May 19, 2021
3d5b354
Bump pysonos to 0.0.49 (#50841)
jjlawren May 19, 2021
ab86c7a
Clean up Sonos resubscription failure logic and logging (#50831)
jjlawren May 19, 2021
a58eae1
Bump brother library version (#50833)
bieniu May 19, 2021
e372565
Add missing return type in zeroconf (#50847)
bdraco May 19, 2021
f1d02bb
Expand homekit zeroconf matching to use fnmatch (#50381)
bdraco May 19, 2021
a2363f0
Upgrade huawei-lte-api to 1.4.18 (#50828)
scop May 19, 2021
3ed416e
Bump pyatmo to 4.2.3 (#50801)
cgtobi May 19, 2021
ebe1059
Move SolarEdge API init and add unload (#50823)
frenck May 19, 2021
4c7fcae
Small bug fixes in modbus due to async (#50812)
janiversen May 19, 2021
62386c8
Enable type checks for device_tracker (#50805)
KapJI May 19, 2021
bce5f8e
Improve AccuWeather type annotations (#50616)
bieniu May 19, 2021
f14f713
Bump home-assistant/wheels from 2021.05.3 to 2021.05.4 (#50809)
dependabot[bot] May 19, 2021
b7fc537
Remove non pymodbus_call from modbus.py. (#50813)
janiversen May 19, 2021
28e9b9e
Add evohome water_heater service calls, bump client to 0.3.15 (#50803)
zxdavb May 19, 2021
456c600
Correct positioning of except statement in speedtestdotnet (#50852)
RogerSelwyn May 19, 2021
d9a5e2c
Bump actions/stale from 3.0.18 to 3.0.19 (#50810)
dependabot[bot] May 19, 2021
c4ced2b
Bump aioshelly to 0.6.3 (#50857)
thecode May 19, 2021
f192702
Add Nettigo Air Monitor uptime sensor (#50834)
bieniu May 19, 2021
109b08b
Remove MQTT cover deprecated options (#50263)
thecode May 19, 2021
7c7432a
Add entity_id to mqtt sensor templates (#50773)
m1ch May 19, 2021
892a2a0
Push modbus switch to 100% test coverage (#50324)
janiversen May 19, 2021
7573add
Add `Final` type for all core constants (#50858)
bieniu May 19, 2021
5ee362b
Store sensor last_reset attribute as a string, not a datetime (#50851)
emontnemery May 19, 2021
9f754f1
bump envoy_reader to 0.19.0 (#50827)
cgarwood May 19, 2021
ab9aa44
Fix SolarEdge active check on entry setup (#50873)
frenck May 19, 2021
f44efb1
Upgrade watchdog to 2.1.2 (#50863)
frenck May 19, 2021
cdf18bd
Add Z-Wave Parameter and Node Rename Services to ISY994 (#50844)
shbatm May 20, 2021
a49d5c4
Add ISY994 System Health Info (#50840)
shbatm May 20, 2021
a021fe3
[ci skip] Translation update
May 20, 2021
7350942
Implement heartbeat in the Broadlink integration (#43878)
felipediel May 20, 2021
2976bbb
Store Hue bridge in hass.data before setting up platforms (#50703)
balloob May 20, 2021
623baa7
Fix zamg station check (#49367)
crazyfx1 May 20, 2021
d4d335f
Fix MQTT debug info for removed triggers (#50859)
emontnemery May 20, 2021
ccd8e13
Address late review comments for AccuWeather integration (#50866)
bieniu May 20, 2021
3bdefc5
Use constants with TypedDict (#50879)
bieniu May 20, 2021
953e6eb
Use constants with TypedDict (#50880)
bieniu May 20, 2021
be6a1bf
Create KNX climate entity directly from config (#49638)
farmio May 20, 2021
aaae4cf
Use constants with TypedDict in Nettigo Air Monitor integration (#50883)
bieniu May 20, 2021
e16a806
Compile statistics for energy sensors (#50829)
emontnemery May 20, 2021
f3db819
Add play_media channel support to LG Netcast (#49527)
Drafteed May 20, 2021
e06a2a5
Add constructor return type in integrations L-N (#50888)
bieniu May 20, 2021
ceec871
Make Netatmo use async pyatmo (#49717)
cgtobi May 20, 2021
61ef58a
bump garage_amsterdam lib to v2.0.5 (#50891)
klaasnicolaas May 20, 2021
a65d386
Add support for EDS0066 (#50035)
tuomaz May 20, 2021
f212049
Add constructor return type in integrations O-S (#50896)
bieniu May 20, 2021
c650dee
Add base class for all modbus platforms (#50878)
janiversen May 20, 2021
9eecd90
Add constructor return type in integrations T-Z (#50899)
mib1185 May 20, 2021
d7c0da9
Add support for DS2405 (#50148)
epenet May 20, 2021
b1138b1
Add constructor return type in integrations E-K (#50902)
mib1185 May 20, 2021
cf228e3
Add constructor return type in integrations A-D (#50903)
thecode May 20, 2021
391b2f8
Add missing return type in Core constructors (#50884)
KapJI May 20, 2021
fd2e640
Use sensor constants in recorder (#50906)
Danielhiversen May 20, 2021
0e7409e
Pylint plugin to check __init__ return type (#50868)
KapJI May 20, 2021
19d25cd
Change config entry state to an enum (#49654)
scop May 20, 2021
0623648
Clean up Netatmo integration (#50904)
cgtobi May 20, 2021
eddc1ab
Handle threads exiting unexpected during shutdown (#50907)
bdraco May 20, 2021
3e1f518
Create KNX weather entity directly from config (#49640)
farmio May 20, 2021
25bf884
[ci skip] Translation update
May 21, 2021
d976990
Bump aiodiscover to 1.4.2 (#50917)
bdraco May 21, 2021
19aee19
Resolve race condition in powerview when discovered by zeroconf and d…
bdraco May 21, 2021
80d1721
Add Modbus light integration (#42120)
vzahradnik May 21, 2021
c979101
Add Modbus fan integration (#48558)
vzahradnik May 21, 2021
6f26687
Compile statistics for battery, humidity and pressure sensors (#50920)
emontnemery May 21, 2021
73d7a75
Mark temperature sensors as STATE_CLASS_MEASUREMENT (#50889)
emontnemery May 21, 2021
00208ff
Use type safe import for device_tracker.PLATFORM_SCHEMA (#50860)
KapJI May 21, 2021
0c40f37
Set device_class and state_class for utility_meter (#50921)
emontnemery May 21, 2021
07e2f53
Add zwave_js add-on info dataclass (#50776)
MartinHjelmare May 21, 2021
b4bb7c3
Fix zwave_js api typing (#50923)
MartinHjelmare May 21, 2021
8c5c8ed
Add strict type annotations to fitbit (#50740)
mib1185 May 21, 2021
6e08703
Add min/max/step to MQTT number (#50869)
thecode May 21, 2021
dc65f27
Add support for state_class to MQTT sensor (#50927)
emontnemery May 21, 2021
42ff687
Add missing type hints to websocket_api (#50915)
KapJI May 21, 2021
752a4b9
Fix version bump script (#50932)
bramkragten May 21, 2021
5491040
Fix missing link in scaffold comment (#50936)
milanmeu May 21, 2021
78be237
[ci skip] Translation update
May 22, 2021
92d1871
Fix flaky vizio test and add comments to explain logic (#50948)
raman325 May 22, 2021
15e2c6d
Fix typing for dt_util as_timestamp (#50886)
emontnemery May 22, 2021
2e316f6
Add strict type annotations to canary (#50943)
mib1185 May 22, 2021
b704f0e
Add strict typing to device_tracker (#50930)
KapJI May 22, 2021
016abda
Pylint plugin to check that relative imports are used (#50937)
KapJI May 22, 2021
59ae78e
Add restore_state to modbus binary_sensor (#50922)
janiversen May 22, 2021
afb372a
Add Final type for constants in sensor component (#50955)
bieniu May 22, 2021
560dd0a
Typing improvements for TPLink (#50947)
frenck May 22, 2021
4a64f7a
Add strict type annotations to tcp (#50877)
mib1185 May 22, 2021
9f04c7e
Add Openweathermap cloud coverage forecast (#50961)
carstenschroeder May 22, 2021
aa9b997
Add purge_entities service call to recorder (#48069)
PeteBa May 22, 2021
b9a0fb9
Add samsungtv dhcp and zeroconf discovery (#48022)
chemelli74 May 22, 2021
38d095a
Define entity attributes as entity class variables (#50925)
frenck May 22, 2021
f7bc456
Define sensor entity attributes as class variables (#50942)
frenck May 22, 2021
d3bc2bc
Define binary_sensor entity attribute as class variables (#50940)
frenck May 22, 2021
cad4ec8
Define light entity attributes as class variables (#50941)
frenck May 22, 2021
e64b5af
Typing improvements for Sentry (#50787)
frenck May 22, 2021
3c8707f
Fix tcp typing, fixing CI (#50965)
frenck May 22, 2021
b9086b5
Fix Documentation leading to a 404 Page (#50962)
MatejMecka May 22, 2021
99e58f3
Fix coinbase response pagination (#50890)
renaiku May 22, 2021
a03ee1e
Fix Volvo On Call lock state (#50832)
victorclaessen May 22, 2021
4948bec
Fix is_on attr not being used in binary sensor (#50968)
frenck May 22, 2021
f4289b3
Improve supported_color_modes typing in Light (#50969)
frenck May 22, 2021
45897b5
Turn on samsungtv with wakeonlan (#50964)
bdraco May 22, 2021
c7ada1e
Fix flaky Shelly config flow test (#50982)
thecode May 22, 2021
460092e
[ci skip] Translation update
May 23, 2021
caad125
Add support for Oracle DB in recorder (#50090)
mciupak May 23, 2021
0cbcb9e
Fix Hue overriding property methods, remove ignored typing (#50976)
frenck May 23, 2021
7ff14b4
Use whoami for location lookup (#50934)
ludeeus May 23, 2021
e4c77fd
Bump aiohomekit to 0.2.62 (#50981)
bdraco May 23, 2021
3141535
Bump geojson_client to 0.6 (#50985)
exxamalte May 23, 2021
5ca5b9a
Improve KNX config validation (#50980)
farmio May 23, 2021
ecb24f0
Bump aiopvpc from 2.0.2 to 2.1.1 (#50989)
azogue May 23, 2021
9b02fd8
Update mill library, fix consumption data (#50992)
Danielhiversen May 23, 2021
44bbd93
Fix typing in config flow helper (#50994)
KapJI May 23, 2021
29205a9
Sonos use common firmware version (#50861)
jjlawren May 23, 2021
e1b6385
Add support for doorbell buttons to homekit_controller (#50983)
bdraco May 23, 2021
87438dd
Add services to SmartTub for changing filtration settings (#46980)
mdz May 23, 2021
4b0b0f5
Allow user to override insecure setup codes and pair with homekit_con…
bdraco May 23, 2021
f55213d
Update modbus cover to 100% coverage (#50996)
janiversen May 23, 2021
dbefa8f
Add strict type annotations to alarm_control_panel (#50945)
mib1185 May 23, 2021
c1a1a38
Improve legacy support for Hunter Douglas PowerView (#50918)
HighOnMikey May 23, 2021
4d527c5
Update pylutron-caseta to 0.10.0 (#51005)
ahayworth May 23, 2021
3cef96e
Update aiohomekit to subscribe more like iOS (#50997)
bdraco May 23, 2021
f0cd87e
Reduce precision in returned values to meaningful digits (#49382)
nielstron May 23, 2021
c91f892
Add `state_class` to entities coming from battery powered devices in …
bieniu May 23, 2021
e920afd
[ci skip] Translation update
May 24, 2021
121349f
Bump python-smarttub to 0.0.25 (#51015)
mdz May 24, 2021
d7da32c
Add refresh when changing SmartTub filtration settings (#51014)
mdz May 24, 2021
0bba0f0
Add SIA Alarm systems (#36625)
eavanvalkenburg May 24, 2021
331cb3b
Fix KNX light: turn on color light with only brightness (#50979)
farmio May 24, 2021
ec4a47d
Fix sia pylint errors (#51022)
emontnemery May 24, 2021
b169a8d
Mark battery, humidity and pressure sensors as STATE_CLASS_MEASUREMEN…
emontnemery May 24, 2021
870c61a
Add color_mode support to MQTT light with basic schema (#50464)
emontnemery May 24, 2021
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
96 changes: 77 additions & 19 deletions .coveragerc

Large diffs are not rendered by default.

11 changes: 3 additions & 8 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
name: Report an issue with Home Assistant Core
description: Report an issue with Home Assistant Core.
title: ""
issue_body: true
body:
- type: markdown
attributes:
Expand Down Expand Up @@ -85,13 +83,10 @@ body:
label: Anything in the logs that might be useful for us?
description: For example, error message, or stack traces.
render: txt
- type: markdown
attributes:
value: |
## Additional information
- type: markdown
- type: textarea
attributes:
value: >
label: Additional information
description: >
If you have any additional information for us, use the field below.
Please note, you can attach screenshots or screen recordings here, by
dragging and dropping files in the field below.
13 changes: 0 additions & 13 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,19 +36,6 @@
- [ ] Breaking change (fix/feature causing existing functionality to break)
- [ ] Code quality improvements to existing code or addition of tests

## Example entry for `configuration.yaml`:
<!--
Supplying a configuration snippet, makes it easier for a maintainer to test
your PR. Furthermore, for new integrations, it gives an impression of how
the configuration would look like.
Note: Remove this section if this PR does not have an example entry.
-->

```yaml
# Example configuration.yaml

```

## Additional information
<!--
Details are important, and help maintainers processing your PR.
Expand Down
311 changes: 311 additions & 0 deletions .github/workflows/builder.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,311 @@
name: Build images

# yamllint disable-line rule:truthy
on:
workflow_dispatch:
release:
types: ["published"]
schedule:
- cron: "0 2 * * *"

env:
BUILD_TYPE: core
DEFAULT_PYTHON: 3.8

jobs:
init:
name: Initialize build
runs-on: ubuntu-latest
outputs:
architectures: ${{ steps.info.outputs.architectures }}
version: ${{ steps.version.outputs.version }}
channel: ${{ steps.version.outputs.channel }}
publish: ${{ steps.version.outputs.publish }}
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4
with:
fetch-depth: 0

- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
with:
python-version: ${{ env.DEFAULT_PYTHON }}

- name: Get information
id: info
uses: home-assistant/actions/helpers/info@master

- name: Get version
id: version
uses: home-assistant/actions/helpers/version@master
with:
type: ${{ env.BUILD_TYPE }}

- name: Verify version
uses: home-assistant/actions/helpers/verify-version@master
with:
ignore-dev: true

build_python:
name: Build PyPi package
needs: init
runs-on: ubuntu-latest
if: needs.init.outputs.publish == 'true'
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4

- name: Set up Python ${{ env.DEFAULT_PYTHON }}
uses: actions/setup-python@v2.2.2
with:
python-version: ${{ env.DEFAULT_PYTHON }}

- name: Build package
shell: bash
run: |
pip install twine wheel
python setup.py sdist bdist_wheel

- name: Upload package
shell: bash
run: |
export TWINE_USERNAME="__token__"
export TWINE_PASSWORD="${{ secrets.TWINE_TOKEN }}"

twine upload dist/* --skip-existing

build_base:
name: Build ${{ matrix.arch }} base core image
needs: init
runs-on: ubuntu-latest
strategy:
matrix:
arch: ${{ fromJson(needs.init.outputs.architectures) }}
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4

- name: Set up Python ${{ env.DEFAULT_PYTHON }}
if: needs.init.outputs.channel == 'dev'
uses: actions/setup-python@v2.2.2
with:
python-version: ${{ env.DEFAULT_PYTHON }}

- name: Adjust nightly version
if: needs.init.outputs.channel == 'dev'
shell: bash
run: |
python3 -m pip install packaging
python3 -m pip install .
python3 script/version_bump.py nightly
version="$(python setup.py -V)"

- name: Login to DockerHub
uses: docker/login-action@v1.9.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Login to GitHub Container Registry
uses: docker/login-action@v1.9.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build base image
uses: home-assistant/builder@2021.05.0
with:
args: |
$BUILD_ARGS \
--${{ matrix.arch }} \
--target /data \
--with-codenotary "${{ secrets.VCN_USER }}" "${{ secrets.VCN_PASSWORD }}" "${{ secrets.VCN_ORG }}" \
--validate-from "${{ secrets.VCN_ORG }}" \
--generic ${{ needs.init.outputs.version }}

build_machine:
name: Build ${{ matrix.machine }} machine core image
needs: ["init", "build_base"]
runs-on: ubuntu-latest
strategy:
matrix:
machine:
- generic-x86-64
- intel-nuc
- odroid-c2
- odroid-c4
- odroid-n2
- odroid-xu
- qemuarm
- qemuarm-64
- qemux86
- qemux86-64
- raspberrypi
- raspberrypi2
- raspberrypi3
- raspberrypi3-64
- raspberrypi4
- raspberrypi4-64
- tinker
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4

- name: Login to DockerHub
uses: docker/login-action@v1.9.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Login to GitHub Container Registry
uses: docker/login-action@v1.9.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build base image
uses: home-assistant/builder@2021.05.0
with:
args: |
$BUILD_ARGS \
--target /data/machine \
--with-codenotary "${{ secrets.VCN_USER }}" "${{ secrets.VCN_PASSWORD }}" "${{ secrets.VCN_ORG }}" \
--validate-from "${{ secrets.VCN_ORG }}" \
--machine "${{ needs.init.outputs.version }}=${{ matrix.machine }}"

publish_ha:
name: Publish version files
needs: ["init", "build_machine"]
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4

- name: Initialize git
uses: home-assistant/actions/helpers/git-init@master
with:
name: ${{ secrets.GIT_NAME }}
email: ${{ secrets.GIT_EMAIL }}
token: ${{ secrets.GIT_TOKEN }}

- name: Update version file
uses: home-assistant/actions/helpers/version-push@master
with:
key: "homeassistant[]"
key-description: "Home Assistant Core"
version: ${{ needs.init.outputs.version }}
channel: ${{ needs.init.outputs.channel }}

- name: Update version file (stable -> beta)
if: needs.init.outputs.channel == 'stable'
uses: home-assistant/actions/helpers/version-push@master
with:
key: "homeassistant[]"
key-description: "Home Assistant Core"
version: ${{ needs.init.outputs.version }}
channel: beta

publish_container:
name: Publish meta container
needs: ["init", "build_base"]
runs-on: ubuntu-latest
steps:
- name: Checkout the repository
uses: actions/checkout@v2.3.4

- name: Login to DockerHub
uses: docker/login-action@v1.9.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Login to GitHub Container Registry
uses: docker/login-action@v1.9.0
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build Meta Image
shell: bash
run: |
bash <(curl https://getvcn.codenotary.com -L)

export DOCKER_CLI_EXPERIMENTAL=enabled

function create_manifest() {
local docker_reg=${1}
local tag_l=${2}
local tag_r=${3}

docker manifest create "${docker_reg}/home-assistant:${tag_l}" \
"${docker_reg}/amd64-homeassistant:${tag_r}" \
"${docker_reg}/i386-homeassistant:${tag_r}" \
"${docker_reg}/armhf-homeassistant:${tag_r}" \
"${docker_reg}/armv7-homeassistant:${tag_r}" \
"${docker_reg}/aarch64-homeassistant:${tag_r}"

docker manifest annotate "${docker_reg}/home-assistant:${tag_l}" \
"${docker_reg}/amd64-homeassistant:${tag_r}" \
--os linux --arch amd64

docker manifest annotate "${docker_reg}/home-assistant:${tag_l}" \
"${docker_reg}/i386-homeassistant:${tag_r}" \
--os linux --arch 386

docker manifest annotate "${docker_reg}/home-assistant:${tag_l}" \
"${docker_reg}/armhf-homeassistant:${tag_r}" \
--os linux --arch arm --variant=v6

docker manifest annotate "${docker_reg}/home-assistant:${tag_l}" \
"${docker_reg}/armv7-homeassistant:${tag_r}" \
--os linux --arch arm --variant=v7

docker manifest annotate "${docker_reg}/home-assistant:${tag_l}" \
"${docker_reg}/aarch64-homeassistant:${tag_r}" \
--os linux --arch arm64 --variant=v8

docker manifest push --purge "${docker_reg}/home-assistant:${tag_l}"
}

function validate_image() {
local image=${1}
state="$(vcn authenticate --org home-assistant.io --output json docker://${image} | jq '.verification.status // 2')"
if [[ "${state}" != "0" ]]; then
echo "Invalid signature!"
exit 1
fi
}

for docker_reg in "homeassistant" "ghcr.io/home-assistant"; do
docker pull "${docker_reg}/amd64-homeassistant:${{ needs.init.outputs.version }}"
docker pull "${docker_reg}/i386-homeassistant:${{ needs.init.outputs.version }}"
docker pull "${docker_reg}/armhf-homeassistant:${{ needs.init.outputs.version }}"
docker pull "${docker_reg}/armv7-homeassistant:${{ needs.init.outputs.version }}"
docker pull "${docker_reg}/aarch64-homeassistant:${{ needs.init.outputs.version }}"

validate_image "${docker_reg}/amd64-homeassistant:${{ needs.init.outputs.version }}"
validate_image "${docker_reg}/i386-homeassistant:${{ needs.init.outputs.version }}"
validate_image "${docker_reg}/armhf-homeassistant:${{ needs.init.outputs.version }}"
validate_image "${docker_reg}/armv7-homeassistant:${{ needs.init.outputs.version }}"
validate_image "${docker_reg}/aarch64-homeassistant:${{ needs.init.outputs.version }}"

# Create version tag
create_manifest "${docker_reg}" "${{ needs.init.outputs.version }}" "${{ needs.init.outputs.version }}"

# Create general tags
if [[ "${{ needs.init.outputs.version }}" =~ d ]]; then
create_manifest "${docker_reg}" "dev" "${{ needs.init.outputs.version }}"
elif [[ "${{ needs.init.outputs.version }}" =~ b ]]; then
create_manifest "${docker_reg}" "beta" "${{ needs.init.outputs.version }}"
create_manifest "${docker_reg}" "rc" "${{ needs.init.outputs.version }}"
else
create_manifest "${docker_reg}" "stable" "${{ needs.init.outputs.version }}"
create_manifest "${docker_reg}" "latest" "${{ needs.init.outputs.version }}"
create_manifest "${docker_reg}" "beta" "${{ needs.init.outputs.version }}"
create_manifest "${docker_reg}" "rc" "${{ needs.init.outputs.version }}"
fi
done
Loading