diff --git a/.azure/azp-template-addon.yml b/.azure/azp-template-addon.yml index 35b9293..44afb72 100644 --- a/.azure/azp-template-addon.yml +++ b/.azure/azp-template-addon.yml @@ -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 }}' diff --git a/azure-pipelines.yml b/azure-pipelines.yml index f523964..60c8a22 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -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' diff --git a/cec_scan/azure-pipelines.yml b/cec_scan/azure-pipelines.yml new file mode 100644 index 0000000..06c54e0 --- /dev/null +++ b/cec_scan/azure-pipelines.yml @@ -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' diff --git a/check_config/azure-pipelines.yml b/check_config/azure-pipelines.yml new file mode 100644 index 0000000..d36711d --- /dev/null +++ b/check_config/azure-pipelines.yml @@ -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' diff --git a/configurator/azure-pipelines.yml b/configurator/azure-pipelines.yml new file mode 100644 index 0000000..7848656 --- /dev/null +++ b/configurator/azure-pipelines.yml @@ -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' diff --git a/deconz/azure-pipelines.yml b/deconz/azure-pipelines.yml new file mode 100644 index 0000000..d579888 --- /dev/null +++ b/deconz/azure-pipelines.yml @@ -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' diff --git a/dhcp_server/azure-pipelines.yml b/dhcp_server/azure-pipelines.yml new file mode 100644 index 0000000..d211868 --- /dev/null +++ b/dhcp_server/azure-pipelines.yml @@ -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' diff --git a/dnsmasq/azure-pipelines.yml b/dnsmasq/azure-pipelines.yml new file mode 100644 index 0000000..3f6ca68 --- /dev/null +++ b/dnsmasq/azure-pipelines.yml @@ -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' diff --git a/duckdns/azure-pipelines.yml b/duckdns/azure-pipelines.yml new file mode 100644 index 0000000..f76a7d6 --- /dev/null +++ b/duckdns/azure-pipelines.yml @@ -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' diff --git a/git_pull/azure-pipelines.yml b/git_pull/azure-pipelines.yml new file mode 100644 index 0000000..a95d42c --- /dev/null +++ b/git_pull/azure-pipelines.yml @@ -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' diff --git a/google_assistant/azure-pipelines.yml b/google_assistant/azure-pipelines.yml new file mode 100644 index 0000000..8092526 --- /dev/null +++ b/google_assistant/azure-pipelines.yml @@ -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' diff --git a/homematic/azure-pipelines.yml b/homematic/azure-pipelines.yml new file mode 100644 index 0000000..b260003 --- /dev/null +++ b/homematic/azure-pipelines.yml @@ -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' diff --git a/letsencrypt/azure-pipelines.yml b/letsencrypt/azure-pipelines.yml new file mode 100644 index 0000000..366db60 --- /dev/null +++ b/letsencrypt/azure-pipelines.yml @@ -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' diff --git a/mariadb/azure-pipelines.yml b/mariadb/azure-pipelines.yml new file mode 100644 index 0000000..1afafd4 --- /dev/null +++ b/mariadb/azure-pipelines.yml @@ -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' diff --git a/mosquitto/azure-pipelines.yml b/mosquitto/azure-pipelines.yml new file mode 100644 index 0000000..0fec8db --- /dev/null +++ b/mosquitto/azure-pipelines.yml @@ -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' diff --git a/nginx_proxy/azure-pipelines.yml b/nginx_proxy/azure-pipelines.yml new file mode 100644 index 0000000..910c6cb --- /dev/null +++ b/nginx_proxy/azure-pipelines.yml @@ -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' diff --git a/rpc_shutdown/azure-pipelines.yml b/rpc_shutdown/azure-pipelines.yml new file mode 100644 index 0000000..46bf0dd --- /dev/null +++ b/rpc_shutdown/azure-pipelines.yml @@ -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' diff --git a/samba/azure-pipelines.yml b/samba/azure-pipelines.yml new file mode 100644 index 0000000..61da976 --- /dev/null +++ b/samba/azure-pipelines.yml @@ -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' diff --git a/snips/azure-pipelines.yml b/snips/azure-pipelines.yml new file mode 100644 index 0000000..dcd3ca0 --- /dev/null +++ b/snips/azure-pipelines.yml @@ -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' diff --git a/ssh/azure-pipelines.yml b/ssh/azure-pipelines.yml new file mode 100644 index 0000000..fc64fed --- /dev/null +++ b/ssh/azure-pipelines.yml @@ -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' diff --git a/tellstick/azure-pipelines.yml b/tellstick/azure-pipelines.yml new file mode 100644 index 0000000..422302e --- /dev/null +++ b/tellstick/azure-pipelines.yml @@ -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'