Update to Alpine3.11

This commit is contained in:
Pascal Vizeli 2020-01-09 14:10:36 +00:00
parent 0925af91e3
commit ca82993278

View File

@ -8,82 +8,80 @@ trigger:
- dev - dev
tags: tags:
include: include:
- '*' - "*"
exclude: exclude:
- untagged* - untagged*
pr: pr:
- dev - dev
variables: variables:
- name: basePythonTag - name: basePythonTag
value: '3.7-alpine3.10' value: "3.7-alpine3.11"
- name: versionHadolint - name: versionHadolint
value: 'v1.16.3' value: "v1.16.3"
- name: versionBuilder - name: versionBuilder
value: '4.4' value: "4.4"
- name: versionWheels - name: versionWheels
value: '1.0-3.7-alpine3.10' value: "1.6-3.7-alpine3.11"
- group: docker - group: docker
- group: wheels - group: wheels
stages: stages:
- stage: "Test"
- stage: 'Test'
jobs: jobs:
- job: 'Tox' - job: "Tox"
pool: pool:
vmImage: 'ubuntu-latest' vmImage: "ubuntu-latest"
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
displayName: 'Use Python 3.7' displayName: "Use Python 3.7"
inputs: inputs:
versionSpec: '3.7' versionSpec: "3.7"
- script: pip install tox - script: pip install tox
displayName: 'Install Tox' displayName: "Install Tox"
- script: tox - script: tox
displayName: 'Run Tox' displayName: "Run Tox"
- job: 'JQ' - job: "JQ"
pool: pool:
vmImage: 'ubuntu-latest' vmImage: "ubuntu-latest"
steps: steps:
- script: sudo apt-get install -y jq - script: sudo apt-get install -y jq
displayName: 'Install JQ' displayName: "Install JQ"
- bash: | - bash: |
shopt -s globstar shopt -s globstar
cat **/*.json | jq '.' cat **/*.json | jq '.'
displayName: 'Run JQ' displayName: "Run JQ"
- job: 'Hadolint' - job: "Hadolint"
pool: pool:
vmImage: 'ubuntu-latest' vmImage: "ubuntu-latest"
steps: steps:
- script: sudo docker pull hadolint/hadolint:$(versionHadolint) - script: sudo docker pull hadolint/hadolint:$(versionHadolint)
displayName: 'Install Hadolint' displayName: "Install Hadolint"
- script: | - script: |
sudo docker run --rm -i \ sudo docker run --rm -i \
-v $(pwd)/.hadolint.yaml:/.hadolint.yaml:ro \ -v $(pwd)/.hadolint.yaml:/.hadolint.yaml:ro \
hadolint/hadolint:$(versionHadolint) < Dockerfile hadolint/hadolint:$(versionHadolint) < Dockerfile
displayName: 'Run Hadolint' displayName: "Run Hadolint"
- stage: 'Wheels' - stage: "Wheels"
jobs: jobs:
- job: 'Wheels' - job: "Wheels"
condition: eq(variables['Build.SourceBranchName'], 'dev') condition: eq(variables['Build.SourceBranchName'], 'dev')
timeoutInMinutes: 360 timeoutInMinutes: 360
pool: pool:
vmImage: 'ubuntu-latest' vmImage: "ubuntu-latest"
strategy: strategy:
maxParallel: 5 maxParallel: 5
matrix: matrix:
amd64: amd64:
buildArch: 'amd64' buildArch: "amd64"
i386: i386:
buildArch: 'i386' buildArch: "i386"
armhf: armhf:
buildArch: 'armhf' buildArch: "armhf"
armv7: armv7:
buildArch: 'armv7' buildArch: "armv7"
aarch64: aarch64:
buildArch: 'aarch64' buildArch: "aarch64"
steps: steps:
- script: | - script: |
sudo apt-get update sudo apt-get update
@ -95,15 +93,15 @@ stages:
sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
sudo update-binfmts --enable qemu-arm sudo update-binfmts --enable qemu-arm
sudo update-binfmts --enable qemu-aarch64 sudo update-binfmts --enable qemu-aarch64
displayName: 'Initial cross build' displayName: "Initial cross build"
- script: | - script: |
mkdir -p .ssh mkdir -p .ssh
echo -e "-----BEGIN RSA PRIVATE KEY-----\n$(wheelsSSH)\n-----END RSA PRIVATE KEY-----" >> .ssh/id_rsa echo -e "-----BEGIN RSA PRIVATE KEY-----\n$(wheelsSSH)\n-----END RSA PRIVATE KEY-----" >> .ssh/id_rsa
ssh-keyscan -H $(wheelsHost) >> .ssh/known_hosts ssh-keyscan -H $(wheelsHost) >> .ssh/known_hosts
chmod 600 .ssh/* chmod 600 .ssh/*
displayName: 'Install ssh key' displayName: "Install ssh key"
- script: sudo docker pull homeassistant/$(buildArch)-wheels:$(versionWheels) - script: sudo docker pull homeassistant/$(buildArch)-wheels:$(versionWheels)
displayName: 'Install wheels builder' displayName: "Install wheels builder"
- script: | - script: |
sudo docker run --rm -v $(pwd):/data:ro -v $(pwd)/.ssh:/root/.ssh:rw \ sudo docker run --rm -v $(pwd):/data:ro -v $(pwd)/.ssh:/root/.ssh:rw \
homeassistant/$(buildArch)-wheels:$(versionWheels) \ homeassistant/$(buildArch)-wheels:$(versionWheels) \
@ -112,19 +110,19 @@ stages:
--requirement requirements.txt \ --requirement requirements.txt \
--upload rsync \ --upload rsync \
--remote wheels@$(wheelsHost):/opt/wheels --remote wheels@$(wheelsHost):/opt/wheels
displayName: 'Run wheels build' displayName: "Run wheels build"
- stage: 'Deploy' - stage: "Deploy"
jobs: jobs:
- job: 'VersionValidate' - job: "VersionValidate"
condition: or(startsWith(variables['Build.SourceBranch'], 'refs/tags'), eq(variables['Build.SourceBranchName'], 'dev')) condition: or(startsWith(variables['Build.SourceBranch'], 'refs/tags'), eq(variables['Build.SourceBranchName'], 'dev'))
pool: pool:
vmImage: 'ubuntu-latest' vmImage: "ubuntu-latest"
steps: steps:
- task: UsePythonVersion@0 - task: UsePythonVersion@0
displayName: 'Use Python 3.7' displayName: "Use Python 3.7"
inputs: inputs:
versionSpec: '3.7' versionSpec: "3.7"
- script: | - script: |
setup_version="$(python setup.py -V)" setup_version="$(python setup.py -V)"
branch_version="$(Build.SourceBranchName)" branch_version="$(Build.SourceBranchName)"
@ -135,17 +133,17 @@ stages:
echo "Version of tag ${branch_version} don't match with ${setup_version}!" echo "Version of tag ${branch_version} don't match with ${setup_version}!"
exit 1 exit 1
fi fi
displayName: 'Check version of branch/tag' displayName: "Check version of branch/tag"
- job: 'Release' - job: "Release"
dependsOn: dependsOn:
- 'VersionValidate' - "VersionValidate"
pool: pool:
vmImage: 'ubuntu-latest' vmImage: "ubuntu-latest"
steps: steps:
- 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)
displayName: 'Install Builder' displayName: "Install Builder"
- script: | - script: |
sudo docker run --rm --privileged \ sudo docker run --rm --privileged \
-v ~/.docker:/root/.docker \ -v ~/.docker:/root/.docker \
@ -153,4 +151,4 @@ stages:
homeassistant/amd64-builder:$(versionBuilder) \ homeassistant/amd64-builder:$(versionBuilder) \
--supervisor $(basePythonTag) --version $(Build.SourceBranchName) \ --supervisor $(basePythonTag) --version $(Build.SourceBranchName) \
--all -t /data --docker-hub homeassistant --all -t /data --docker-hub homeassistant
displayName: 'Build Release' displayName: "Build Release"