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

@ -4,153 +4,151 @@ trigger:
batch: true batch: true
branches: branches:
include: include:
- master - master
- 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"
jobs:
- job: "Tox"
pool:
vmImage: "ubuntu-latest"
steps:
- task: UsePythonVersion@0
displayName: "Use Python 3.7"
inputs:
versionSpec: "3.7"
- script: pip install tox
displayName: "Install Tox"
- script: tox
displayName: "Run Tox"
- job: "JQ"
pool:
vmImage: "ubuntu-latest"
steps:
- script: sudo apt-get install -y jq
displayName: "Install JQ"
- bash: |
shopt -s globstar
cat **/*.json | jq '.'
displayName: "Run JQ"
- job: "Hadolint"
pool:
vmImage: "ubuntu-latest"
steps:
- script: sudo docker pull hadolint/hadolint:$(versionHadolint)
displayName: "Install Hadolint"
- script: |
sudo docker run --rm -i \
-v $(pwd)/.hadolint.yaml:/.hadolint.yaml:ro \
hadolint/hadolint:$(versionHadolint) < Dockerfile
displayName: "Run Hadolint"
- stage: 'Test' - stage: "Wheels"
jobs: jobs:
- job: 'Tox' - job: "Wheels"
pool: condition: eq(variables['Build.SourceBranchName'], 'dev')
vmImage: 'ubuntu-latest' timeoutInMinutes: 360
steps: pool:
- task: UsePythonVersion@0 vmImage: "ubuntu-latest"
displayName: 'Use Python 3.7' strategy:
inputs: maxParallel: 5
versionSpec: '3.7' matrix:
- script: pip install tox amd64:
displayName: 'Install Tox' buildArch: "amd64"
- script: tox i386:
displayName: 'Run Tox' buildArch: "i386"
- job: 'JQ' armhf:
pool: buildArch: "armhf"
vmImage: 'ubuntu-latest' armv7:
steps: buildArch: "armv7"
- script: sudo apt-get install -y jq aarch64:
displayName: 'Install JQ' buildArch: "aarch64"
- bash: | steps:
shopt -s globstar - script: |
cat **/*.json | jq '.' sudo apt-get update
displayName: 'Run JQ' sudo apt-get install -y --no-install-recommends \
- job: 'Hadolint' qemu-user-static \
pool: binfmt-support \
vmImage: 'ubuntu-latest' curl
steps:
- script: sudo docker pull hadolint/hadolint:$(versionHadolint)
displayName: 'Install Hadolint'
- script: |
sudo docker run --rm -i \
-v $(pwd)/.hadolint.yaml:/.hadolint.yaml:ro \
hadolint/hadolint:$(versionHadolint) < Dockerfile
displayName: 'Run Hadolint'
- stage: 'Wheels' sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
jobs: sudo update-binfmts --enable qemu-arm
- job: 'Wheels' sudo update-binfmts --enable qemu-aarch64
condition: eq(variables['Build.SourceBranchName'], 'dev') displayName: "Initial cross build"
timeoutInMinutes: 360 - script: |
pool: mkdir -p .ssh
vmImage: 'ubuntu-latest' echo -e "-----BEGIN RSA PRIVATE KEY-----\n$(wheelsSSH)\n-----END RSA PRIVATE KEY-----" >> .ssh/id_rsa
strategy: ssh-keyscan -H $(wheelsHost) >> .ssh/known_hosts
maxParallel: 5 chmod 600 .ssh/*
matrix: displayName: "Install ssh key"
amd64: - script: sudo docker pull homeassistant/$(buildArch)-wheels:$(versionWheels)
buildArch: 'amd64' displayName: "Install wheels builder"
i386: - script: |
buildArch: 'i386' sudo docker run --rm -v $(pwd):/data:ro -v $(pwd)/.ssh:/root/.ssh:rw \
armhf: homeassistant/$(buildArch)-wheels:$(versionWheels) \
buildArch: 'armhf' --apk "build-base;libffi-dev;openssl-dev" \
armv7: --index $(wheelsIndex) \
buildArch: 'armv7' --requirement requirements.txt \
aarch64: --upload rsync \
buildArch: 'aarch64' --remote wheels@$(wheelsHost):/opt/wheels
steps: displayName: "Run wheels build"
- script: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
qemu-user-static \
binfmt-support \
curl
sudo mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc - stage: "Deploy"
sudo update-binfmts --enable qemu-arm jobs:
sudo update-binfmts --enable qemu-aarch64 - job: "VersionValidate"
displayName: 'Initial cross build' condition: or(startsWith(variables['Build.SourceBranch'], 'refs/tags'), eq(variables['Build.SourceBranchName'], 'dev'))
- script: | pool:
mkdir -p .ssh vmImage: "ubuntu-latest"
echo -e "-----BEGIN RSA PRIVATE KEY-----\n$(wheelsSSH)\n-----END RSA PRIVATE KEY-----" >> .ssh/id_rsa steps:
ssh-keyscan -H $(wheelsHost) >> .ssh/known_hosts - task: UsePythonVersion@0
chmod 600 .ssh/* displayName: "Use Python 3.7"
displayName: 'Install ssh key' inputs:
- script: sudo docker pull homeassistant/$(buildArch)-wheels:$(versionWheels) versionSpec: "3.7"
displayName: 'Install wheels builder' - script: |
- script: | setup_version="$(python setup.py -V)"
sudo docker run --rm -v $(pwd):/data:ro -v $(pwd)/.ssh:/root/.ssh:rw \ branch_version="$(Build.SourceBranchName)"
homeassistant/$(buildArch)-wheels:$(versionWheels) \
--apk "build-base;libffi-dev;openssl-dev" \
--index $(wheelsIndex) \
--requirement requirements.txt \
--upload rsync \
--remote wheels@$(wheelsHost):/opt/wheels
displayName: 'Run wheels build'
- stage: 'Deploy' if [ "${branch_version}" == "dev" ]; then
jobs: exit 0
- job: 'VersionValidate' elif [ "${setup_version}" != "${branch_version}" ]; then
condition: or(startsWith(variables['Build.SourceBranch'], 'refs/tags'), eq(variables['Build.SourceBranchName'], 'dev')) echo "Version of tag ${branch_version} don't match with ${setup_version}!"
pool: exit 1
vmImage: 'ubuntu-latest' fi
steps: displayName: "Check version of branch/tag"
- task: UsePythonVersion@0 - job: "Release"
displayName: 'Use Python 3.7' dependsOn:
inputs: - "VersionValidate"
versionSpec: '3.7' pool:
- script: | vmImage: "ubuntu-latest"
setup_version="$(python setup.py -V)" steps:
branch_version="$(Build.SourceBranchName)" - script: sudo docker login -u $(dockerUser) -p $(dockerPassword)
displayName: "Docker hub login"
if [ "${branch_version}" == "dev" ]; then - script: sudo docker pull homeassistant/amd64-builder:$(versionBuilder)
exit 0 displayName: "Install Builder"
elif [ "${setup_version}" != "${branch_version}" ]; then - script: |
echo "Version of tag ${branch_version} don't match with ${setup_version}!" sudo docker run --rm --privileged \
exit 1 -v ~/.docker:/root/.docker \
fi -v /run/docker.sock:/run/docker.sock:rw -v $(pwd):/data:ro \
displayName: 'Check version of branch/tag' homeassistant/amd64-builder:$(versionBuilder) \
- job: 'Release' --supervisor $(basePythonTag) --version $(Build.SourceBranchName) \
dependsOn: --all -t /data --docker-hub homeassistant
- 'VersionValidate' displayName: "Build Release"
pool:
vmImage: 'ubuntu-latest'
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) \
--supervisor $(basePythonTag) --version $(Build.SourceBranchName) \
--all -t /data --docker-hub homeassistant
displayName: 'Build Release'