diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ae53e94a9b4..35571a9105a 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -5,6 +5,7 @@ trigger: branches: include: - dev + - master tags: include: - '*' @@ -12,7 +13,7 @@ variables: - name: versionBuilder value: '3.2' - name: versionWheels - value: '0.3' + value: '0.7' - group: docker - group: wheels - group: github @@ -22,7 +23,7 @@ variables: jobs: - job: 'Wheels' - condition: eq(variables['Build.SourceBranchName'], 'dev') + condition: or(eq(variables['Build.SourceBranchName'], 'dev'), eq(variables['Build.SourceBranchName'], 'master')) timeoutInMinutes: 360 pool: vmImage: 'ubuntu-latest' @@ -44,7 +45,8 @@ jobs: sudo apt-get update sudo apt-get install -y --no-install-recommends \ qemu-user-static \ - binfmt-support + binfmt-support \ + curl sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc sudo update-binfmts --enable qemu-arm @@ -59,39 +61,45 @@ jobs: - script: sudo docker pull homeassistant/$(buildArch)-wheels:$(versionWheels) displayName: 'Install wheels builder' - script: | - cp requirements_all.txt requirements_hassio.txt + cp requirements_all.txt requirements_wheels.txt + if [ "$(Build.SourceBranchName)" == "dev" ]; then + curl -s -o requirements_diff.txt https://raw.githubusercontent.com/home-assistant/home-assistant/master/requirements_all.txt + else + touch requirements_diff.txt + fi - # Enable because we can build it - sed -i "s|# pytradfri|pytradfri|g" requirements_hassio.txt - sed -i "s|# pybluez|pybluez|g" requirements_hassio.txt - sed -i "s|# bluepy|bluepy|g" requirements_hassio.txt - sed -i "s|# beacontools|beacontools|g" requirements_hassio.txt - sed -i "s|# RPi.GPIO|RPi.GPIO|g" requirements_hassio.txt - sed -i "s|# raspihats|raspihats|g" requirements_hassio.txt - sed -i "s|# rpi-rf|rpi-rf|g" requirements_hassio.txt - sed -i "s|# blinkt|blinkt|g" requirements_hassio.txt - sed -i "s|# fritzconnection|fritzconnection|g" requirements_hassio.txt - sed -i "s|# pyuserinput|pyuserinput|g" requirements_hassio.txt - sed -i "s|# evdev|evdev|g" requirements_hassio.txt - sed -i "s|# smbus-cffi|smbus-cffi|g" requirements_hassio.txt - sed -i "s|# i2csense|i2csense|g" requirements_hassio.txt - sed -i "s|# python-eq3bt|python-eq3bt|g" requirements_hassio.txt - sed -i "s|# pycups|pycups|g" requirements_hassio.txt - sed -i "s|# homekit|homekit|g" requirements_hassio.txt - sed -i "s|# decora_wifi|decora_wifi|g" requirements_hassio.txt - sed -i "s|# decora|decora|g" requirements_hassio.txt - sed -i "s|# PySwitchbot|PySwitchbot|g" requirements_hassio.txt - sed -i "s|# pySwitchmate|pySwitchmate|g" requirements_hassio.txt - - # Disable because of error - sed -i "s|insteonplm|# insteonplm|g" requirements_hassio.txt + requirement_files="requirements_wheels.txt requirements_diff.txt" + for requirement_file in ${requirement_files}; do + sed -i "s|# pytradfri|pytradfri|g" ${requirement_file} + sed -i "s|# pybluez|pybluez|g" ${requirement_file} + sed -i "s|# bluepy|bluepy|g" ${requirement_file} + sed -i "s|# beacontools|beacontools|g" ${requirement_file} + sed -i "s|# RPi.GPIO|RPi.GPIO|g" ${requirement_file} + sed -i "s|# raspihats|raspihats|g" ${requirement_file} + sed -i "s|# rpi-rf|rpi-rf|g" ${requirement_file} + sed -i "s|# blinkt|blinkt|g" ${requirement_file} + sed -i "s|# fritzconnection|fritzconnection|g" ${requirement_file} + sed -i "s|# pyuserinput|pyuserinput|g" ${requirement_file} + sed -i "s|# evdev|evdev|g" ${requirement_file} + sed -i "s|# smbus-cffi|smbus-cffi|g" ${requirement_file} + sed -i "s|# i2csense|i2csense|g" ${requirement_file} + sed -i "s|# python-eq3bt|python-eq3bt|g" ${requirement_file} + sed -i "s|# pycups|pycups|g" ${requirement_file} + sed -i "s|# homekit|homekit|g" ${requirement_file} + sed -i "s|# decora_wifi|decora_wifi|g" ${requirement_file} + sed -i "s|# decora|decora|g" ${requirement_file} + sed -i "s|# PySwitchbot|PySwitchbot|g" ${requirement_file} + sed -i "s|# pySwitchmate|pySwitchmate|g" ${requirement_file} + sed -i "s|# face_recognition|face_recognition|g" ${requirement_file} + done displayName: 'Prepare requirements files for Hass.io' - script: | sudo docker run --rm -v $(pwd):/data:ro -v $(pwd)/.ssh:/root/.ssh:rw \ homeassistant/$(buildArch)-wheels:$(versionWheels) \ --apk "build-base;cmake;git;linux-headers;bluez-dev;libffi-dev;openssl-dev;glib-dev;eudev-dev;libxml2-dev;libxslt-dev;libpng-dev;libjpeg-turbo-dev;tiff-dev;autoconf;automake;cups-dev;linux-headers;gmp-dev;mpfr-dev;mpc1-dev;ffmpeg-dev" \ - --index https://wheels.hass.io \ - --requirement requirements_hassio.txt \ + --index $(wheelsIndex) \ + --requirement requirements_wheels.txt \ + --requirement-diff requirements_diff.txt \ --upload rsync \ --remote wheels@$(wheelsHost):/opt/wheels displayName: 'Run wheels build' @@ -116,7 +124,6 @@ jobs: fi displayName: 'Check version of branch/tag' - script: | - sudo apt-get update sudo apt-get install -y --no-install-recommends \ jq curl @@ -150,7 +157,7 @@ jobs: - script: | export TWINE_USERNAME="$(twineUser)" export TWINE_PASSWORD="$(twinePassword)" - + twine upload dist/* --skip-existing displayName: 'Upload pypi'