Use single pipelines

This commit is contained in:
Pascal Vizeli
2019-06-06 12:37:07 +02:00
parent c02b2d9fc3
commit 12cadc073a
21 changed files with 500 additions and 361 deletions

View File

@@ -1,19 +1,25 @@
# This azure pipeline template build add-ons
parameters:
addon: ''
arch: ''
steps:
- script: sudo docker login -u $(dockerUser) -p $(dockerPassword)
displayName: 'Docker hub login'
- script: sudo docker pull homeassistant/amd64-builder:$(versionBuilder)
displayName: 'Install Builder'
- script: |
sudo docker run --rm --privileged \
-v ~/.docker:/root/.docker \
-v /run/docker.sock:/run/docker.sock:rw -v $(pwd):/data:ro \
homeassistant/amd64-builder:$(versionBuilder) \
--addon ${{ parameters.arch }} -t /data/${{ parameters.addon }} \
--docker-hub homeassistant --docker-hub-check
displayName: 'Build ${{ parameters.addon }}'
# This azure pipeline template build add-ons
parameters:
addon: ''
arch: ''
jobs:
- job: '${{ parameters.addon }}'
condition: eq(variables['Build.SourceBranchName'], 'master')
pool:
vmImage: 'ubuntu-16.04'
steps:
- script: sudo docker login -u $(dockerUser) -p $(dockerPassword)
displayName: 'Docker hub login'
- script: sudo docker pull homeassistant/amd64-builder:$(versionBuilder)
displayName: 'Install Builder'
- script: |
sudo docker run --rm --privileged \
-v ~/.docker:/root/.docker \
-v /run/docker.sock:/run/docker.sock:rw -v $(pwd):/data:ro \
homeassistant/amd64-builder:$(versionBuilder) \
--addon ${{ parameters.arch }} -t /data/${{ parameters.addon }} \
--docker-hub homeassistant --docker-hub-check
displayName: 'Build ${{ parameters.addon }}'

View File

@@ -1,342 +1,57 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
pr:
- master
variables:
versionHadolint: 'v1.16.3'
versionShellCheck: 'v0.6.0'
versionBuilder: '2.0'
jobs:
- job: 'Hadolint'
pool:
vmImage: 'ubuntu-16.04'
steps:
- script: sudo docker pull hadolint/hadolint:$(versionHadolint)
displayName: 'Install Hadolint'
- script: |
set -e
shopt -s globstar
for dockerfile in **/Dockerfile
do
echo "Linting: $dockerfile"
sudo docker run --rm -i \
-v $(pwd)/.hadolint.yaml:/.hadolint.yaml:ro \
hadolint/hadolint:$(versionHadolint) < "$dockerfile"
done
displayName: 'Run Hadolint'
- job: 'ShellCheck'
pool:
vmImage: 'ubuntu-16.04'
steps:
- script: sudo docker pull koalaman/shellcheck:$(versionShellCheck)
displayName: 'Install ShellCheck'
- script: |
shopt -s globstar
sudo docker run --rm -i \
-v $(pwd):/mnt:ro koalaman/shellcheck:$(versionShellCheck) **/*.sh
displayName: 'Run ShellCheck'
- job: 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- script: sudo apt-get install -y jq
displayName: 'Install JQ'
- bash: |
shopt -s globstar
cat **/*.json | jq '.'
displayName: 'Run JQ'
- job: 'cec_scan'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'cec_scan'
arch: '--all'
- job: 'check_config'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'check_config'
arch: '--all'
- job: 'configurator'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'configurator'
arch: '--all'
- job: 'deconz'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'deconz'
arch: '--amd64 --armhf'
- job: 'dhcp_server'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'dhcp_server'
arch: '--all'
- job: 'dnsmasq'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'dnsmasq'
arch: '--all'
- job: 'duckdns'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'duckdns'
arch: '--all'
- job: 'git_pull'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'git_pull'
arch: '--all'
- job: 'google_assistant'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'google_assistant'
arch: '--amd64 --armv7'
- job: 'homematic'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'homematic'
arch: '--i386 --armv7'
- job: 'letsencrypt'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'letsencrypt'
arch: '--all'
- job: 'mariadb'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'mariadb'
arch: '--all'
- job: 'mosquitto'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'mosquitto'
arch: '--all'
- job: 'nginx_proxy'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'nginx_proxy'
arch: '--all'
- job: 'rpc_shutdown'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'rpc_shutdown'
arch: '--all'
- job: 'samba'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'samba'
arch: '--all'
- job: 'snips'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'snips'
arch: '--amd64 --armhf'
- job: 'ssh'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'ssh'
arch: '--all'
- job: 'tellstick'
condition: and(eq(variables['Build.SourceBranchName'], 'master'), succeeded('Hadolint'), succeeded('ShellCheck'), succeeded('JQ'))
dependsOn:
- 'Hadolint'
- 'ShellCheck'
- 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'tellstick'
arch: '--all'
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
pr:
- master
variables:
versionHadolint: 'v1.16.3'
versionShellCheck: 'v0.6.0'
versionBuilder: '2.0'
jobs:
- job: 'Hadolint'
pool:
vmImage: 'ubuntu-16.04'
steps:
- script: sudo docker pull hadolint/hadolint:$(versionHadolint)
displayName: 'Install Hadolint'
- script: |
set -e
shopt -s globstar
for dockerfile in **/Dockerfile
do
echo "Linting: $dockerfile"
sudo docker run --rm -i \
-v $(pwd)/.hadolint.yaml:/.hadolint.yaml:ro \
hadolint/hadolint:$(versionHadolint) < "$dockerfile"
done
displayName: 'Run Hadolint'
- job: 'ShellCheck'
pool:
vmImage: 'ubuntu-16.04'
steps:
- script: sudo docker pull koalaman/shellcheck:$(versionShellCheck)
displayName: 'Install ShellCheck'
- script: |
shopt -s globstar
sudo docker run --rm -i \
-v $(pwd):/mnt:ro koalaman/shellcheck:$(versionShellCheck) **/*.sh
displayName: 'Run ShellCheck'
- job: 'JQ'
pool:
vmImage: 'ubuntu-16.04'
steps:
- script: sudo apt-get install -y jq
displayName: 'Install JQ'
- bash: |
shopt -s globstar
cat **/*.json | jq '.'
displayName: 'Run JQ'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- cec_scan/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'cec_scan'
arch: '--all'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- check_config/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'check_config'
arch: '--all'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- configurator/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'configurator'
arch: '--all'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- deconz/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'deconz'
arch: '--armhf --amd64'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- dhcp_server/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'dhcp_server'
arch: '--all'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- dnsmasq/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'dnsmasq'
arch: '--all'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- duckdns/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'duckdns'
arch: '--all'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- git_pull/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'git_pull'
arch: '--all'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- google_assistant/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'google_assistant'
arch: '--armv7 --amd64'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- homematic/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'homematic'
arch: '--armv7 --i386'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- letsencrypt/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'letsencrypt'
arch: '--all'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- mariadb/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'mariadb'
arch: '--all'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- mosquitto/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'mosquitto'
arch: '--all'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- nginx_proxy/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'nginx_proxy'
arch: '--all'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- rpc_shutdown/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'rpc_shutdown'
arch: '--all'

22
samba/azure-pipelines.yml Normal file
View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- samba/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'samba'
arch: '--all'

22
snips/azure-pipelines.yml Normal file
View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- snips/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'snips'
arch: '--armhf --amd64'

22
ssh/azure-pipelines.yml Normal file
View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- ssh/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'ssh'
arch: '--all'

View File

@@ -0,0 +1,22 @@
# https://dev.azure.com/home-assistant
trigger:
branches:
include:
- master
paths:
include:
- tellstick/*
pr: none
variables:
- name: versionBuilder
value: '2.0'
- group: docker
jobs:
- template: .azure/azp-template-addon.yml
parameters:
addon: 'tellstick'
arch: '--all'