Add example for add-on build

This commit is contained in:
Pascal Vizeli
2019-04-24 18:29:17 +02:00
parent fa2703a713
commit cb69d56fbc
2 changed files with 60 additions and 0 deletions

View File

@@ -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)

30
template-addon.yml Normal file
View File

@@ -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'