Nightly builds (#26204)

* Nightly docker builds / Hass.io dev HA

* use same style

* Finish nightly build

* Update builder version

* Fix style

* fix style part 2

* Last one

* Fix order
This commit is contained in:
Pascal Vizeli 2019-08-26 11:46:46 +02:00 committed by GitHub
parent 0c49c82015
commit 7a111bf863
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -3,11 +3,18 @@
trigger: trigger:
tags: tags:
include: include:
- '*' - '*'
pr: none pr: none
schedules:
- cron: "0 1 * * *"
displayName: "nightly builds"
branches:
include:
- dev
always: true
variables: variables:
- name: versionBuilder - name: versionBuilder
value: '6.1' value: '6.3'
- group: docker - group: docker
- group: github - group: github
- group: twine - group: twine
@ -18,12 +25,13 @@ resources:
name: 'home-assistant/ci-azure' name: 'home-assistant/ci-azure'
endpoint: 'home-assistant' endpoint: 'home-assistant'
stages: stages:
- stage: 'Validate' - stage: 'Validate'
jobs: jobs:
- template: templates/azp-job-version.yaml@azure - template: templates/azp-job-version.yaml@azure
parameters:
ignoreDev: true
- job: 'Permission' - job: 'Permission'
pool: pool:
vmImage: 'ubuntu-latest' vmImage: 'ubuntu-latest'
@ -42,10 +50,12 @@ stages:
echo "${created_by} is not allowed to create an release!" echo "${created_by} is not allowed to create an release!"
exit 1 exit 1
displayName: 'Check rights' displayName: 'Check rights'
condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags'))
- stage: 'Build' - stage: 'Build'
jobs: jobs:
- job: 'ReleasePython' - job: 'ReleasePython'
condition: startsWith(variables['Build.SourceBranch'], 'refs/tags')
pool: pool:
vmImage: 'ubuntu-latest' vmImage: 'ubuntu-latest'
steps: steps:
@ -86,6 +96,7 @@ stages:
buildArch: 'aarch64' buildArch: 'aarch64'
buildMachine: 'qemuarm-64,raspberrypi3-64,raspberrypi4-64,odroid-c2,orangepi-prime' buildMachine: 'qemuarm-64,raspberrypi3-64,raspberrypi4-64,odroid-c2,orangepi-prime'
steps: steps:
- template: templates/azp-step-ha-version.yaml@azure
- script: sudo docker login -u $(dockerUser) -p $(dockerPassword) - script: sudo docker login -u $(dockerUser) -p $(dockerPassword)
displayName: 'Docker hub login' displayName: 'Docker hub login'
- script: sudo docker pull homeassistant/amd64-builder:$(versionBuilder) - script: sudo docker pull homeassistant/amd64-builder:$(versionBuilder)
@ -94,10 +105,11 @@ stages:
set -e set -e
sudo docker run --rm --privileged \ sudo docker run --rm --privileged \
-v ~/.docker:/root/.docker \ -v ~/.docker:/root/.docker:rw \
-v /run/docker.sock:/run/docker.sock:rw \ -v /run/docker.sock:/run/docker.sock:rw \
-v $(pwd):/homeassistant:ro \
homeassistant/amd64-builder:$(versionBuilder) \ homeassistant/amd64-builder:$(versionBuilder) \
--homeassistant $(Build.SourceBranchName) "--$(buildArch)" \ --homeassistant $(homeassistantRelease) "--$(buildArch)" \
-r https://github.com/home-assistant/hassio-homeassistant \ -r https://github.com/home-assistant/hassio-homeassistant \
-t generic --docker-hub homeassistant -t generic --docker-hub homeassistant
@ -105,7 +117,7 @@ stages:
-v ~/.docker:/root/.docker \ -v ~/.docker:/root/.docker \
-v /run/docker.sock:/run/docker.sock:rw \ -v /run/docker.sock:/run/docker.sock:rw \
homeassistant/amd64-builder:$(versionBuilder) \ homeassistant/amd64-builder:$(versionBuilder) \
--homeassistant-machine "$(Build.SourceBranchName)=$(buildMachine)" \ --homeassistant-machine "$(homeassistantRelease)=$(buildMachine)" \
-r https://github.com/home-assistant/hassio-homeassistant \ -r https://github.com/home-assistant/hassio-homeassistant \
-t machine --docker-hub homeassistant -t machine --docker-hub homeassistant
displayName: 'Build Release' displayName: 'Build Release'
@ -116,6 +128,7 @@ stages:
pool: pool:
vmImage: 'ubuntu-latest' vmImage: 'ubuntu-latest'
steps: steps:
- template: templates/azp-step-ha-version.yaml@azure
- script: | - script: |
sudo apt-get install -y --no-install-recommends \ sudo apt-get install -y --no-install-recommends \
git jq curl git jq curl
@ -129,7 +142,7 @@ stages:
- script: | - script: |
set -e set -e
version="$(Build.SourceBranchName)" version="$(homeassistantRelease)"
git clone https://github.com/home-assistant/hassio-version git clone https://github.com/home-assistant/hassio-version
cd hassio-version cd hassio-version
@ -138,11 +151,11 @@ stages:
beta_version="$(jq --raw-output '.homeassistant.default' beta.json)" beta_version="$(jq --raw-output '.homeassistant.default' beta.json)"
stable_version="$(jq --raw-output '.homeassistant.default' stable.json)" stable_version="$(jq --raw-output '.homeassistant.default' stable.json)"
if [[ "$version" =~ b ]]; then if [[ "$version" =~ d ]]; then
sed -i "s|$dev_version|$version|g" dev.json sed -i "s|$dev_version|$version|g" dev.json
elif [[ "$version" =~ b ]]; then
sed -i "s|$beta_version|$version|g" beta.json sed -i "s|$beta_version|$version|g" beta.json
else else
sed -i "s|$dev_version|$version|g" dev.json
sed -i "s|$beta_version|$version|g" beta.json sed -i "s|$beta_version|$version|g" beta.json
sed -i "s|$stable_version|$version|g" stable.json sed -i "s|$stable_version|$version|g" stable.json
fi fi
@ -154,6 +167,7 @@ stages:
pool: pool:
vmImage: 'ubuntu-latest' vmImage: 'ubuntu-latest'
steps: steps:
- template: templates/azp-step-ha-version.yaml@azure
- script: | - script: |
mkdir -p ~/.docker mkdir -p ~/.docker
echo '{ "experimental": "enabled" }' > .docker/config.json echo '{ "experimental": "enabled" }' > .docker/config.json
@ -197,26 +211,26 @@ stages:
sudo docker --config .docker manifest push --purge homeassistant/home-assistant:${tag_l} sudo docker --config .docker manifest push --purge homeassistant/home-assistant:${tag_l}
} }
sudo docker pull homeassistant/amd64-homeassistant:$(Build.SourceBranchName) sudo docker pull homeassistant/amd64-homeassistant:$(homeassistantRelease)
sudo docker pull homeassistant/i386-homeassistant:$(Build.SourceBranchName) sudo docker pull homeassistant/i386-homeassistant:$(homeassistantRelease)
sudo docker pull homeassistant/armhf-homeassistant:$(Build.SourceBranchName) sudo docker pull homeassistant/armhf-homeassistant:$(homeassistantRelease)
sudo docker pull homeassistant/armv7-homeassistant:$(Build.SourceBranchName) sudo docker pull homeassistant/armv7-homeassistant:$(homeassistantRelease)
sudo docker pull homeassistant/aarch64-homeassistant:$(Build.SourceBranchName) sudo docker pull homeassistant/aarch64-homeassistant:$(homeassistantRelease)
# Create version tag # Create version tag
create_manifest "$(Build.SourceBranchName)" "$(Build.SourceBranchName)" create_manifest "$(homeassistantRelease)" "$(homeassistantRelease)"
# Create general tags # Create general tags
if [[ "$version" =~ d ]]; then if [[ "$version" =~ d ]]; then
create_manifest "dev" "$(Build.SourceBranchName)" create_manifest "dev" "$(homeassistantRelease)"
elif [[ "$version" =~ b ]]; then elif [[ "$version" =~ b ]]; then
create_manifest "beta" "$(Build.SourceBranchName)" create_manifest "beta" "$(homeassistantRelease)"
create_manifest "rc" "$(Build.SourceBranchName)" create_manifest "rc" "$(homeassistantRelease)"
else else
create_manifest "stable" "$(Build.SourceBranchName)" create_manifest "stable" "$(homeassistantRelease)"
create_manifest "latest" "$(Build.SourceBranchName)" create_manifest "latest" "$(homeassistantRelease)"
create_manifest "beta" "$(Build.SourceBranchName)" create_manifest "beta" "$(homeassistantRelease)"
create_manifest "rc" "$(Build.SourceBranchName)" create_manifest "rc" "$(homeassistantRelease)"
fi fi
displayName: 'Create Meta-Image' displayName: 'Create Meta-Image'