From cb69d56fbc9e0b3c76d35421d3e3524760f36af0 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Wed, 24 Apr 2019 18:29:17 +0200 Subject: [PATCH] Add example for add-on build --- azure-pipelines.yml | 30 ++++++++++++++++++++++++++++++ template-addon.yml | 30 ++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+) create mode 100644 template-addon.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 8c007db..e35ad28 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -32,6 +32,7 @@ jobs: done displayName: 'Run Hadolint' + - job: 'ShellCheck' pool: vmImage: 'ubuntu-16.04' @@ -55,3 +56,32 @@ jobs: 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' + timeoutInMinutes: 120 + pool: + vmImage: 'ubuntu-16.04' + strategy: + maxParallel: 3 + matrix: + amd64: + buildArch: 'amd64' + i386: + buildArch: 'i386' + armhf: + buildArch: 'armhf' + armv7: + buildArch: 'armv7' + aarch64: + buildArch: 'aarch64' + steps: + - template: template-addon.yml + parameters: + addonFolder: 'cec_scan' + addonImage: 'addon-cec_scan' + buildArch: $(buildArch) diff --git a/template-addon.yml b/template-addon.yml new file mode 100644 index 0000000..463bcf5 --- /dev/null +++ b/template-addon.yml @@ -0,0 +1,30 @@ + +parameters: + addonFolder: '' + addonImage: '' + buildArch: '' + +steps: + - script: sudo apt-get install -y jq curl + displayName: 'Install JQ/curl' + - script: sudo docker login -u $(dockerUser) -p $(dockerPassword) + displayName: 'Docker hub login' + - script: sudo docker pull homeassistant/amd64-builder:$(versionBuilder) + displayName: 'Install Builder' + - script: | + tag="$(cat /data/${{ parameters.addonFolder }}/config.json | jq -e ".version")" + metadata="$(curl -s https://hub.docker.com/v2/repositories/homeassistant/${{ parameters.buildArch }}-${{ parameters.addonImage }}/tags/$tag/ | jq -e ".name // empty")" + + # Version Exists + if [ "$metadata" = "$tag" ]; then + exit 0 + fi + + # Build new version + 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.buildArch }}" -t /data/${{ parameters.addonFolder }} \ + --docker-hub homeassistant + displayName: 'Build Python base-images'