docker-ripe-atlas/azure-pipelines.yaml
2020-06-30 19:35:06 +08:00

113 lines
3.2 KiB
YAML

name: $(Date:yyyyMMdd).$(Rev:r)
variables:
DOCKER_IMAGE_BASENAME: "jamesits/ripe-atlas"
trigger:
batch: true
branches:
include: [ "master" ]
paths:
include: [ "*" ]
exclude: [ "README.md" ]
pr:
autoCancel: true
branches:
include:
- master
paths:
exclude:
- README.md
schedules:
- cron: "0 3 * * *"
displayName: nightly build
always: true
branches:
include:
- master
jobs:
- job: docker_nightly
displayName: "docker"
pool:
name: "$(POOL)"
vmImage: "ubuntu-latest"
workspace:
clean: all
timeoutInMinutes: 60
strategy:
matrix:
amd64:
ARCH: "amd64"
DOCKER_IMAGE_TAG: "latest"
POOL: "Azure Pipelines"
armv7l:
ARCH: "armv7l"
DOCKER_IMAGE_TAG: "latest-armv7l"
POOL: "OtakuNeko ARM32"
maxParallel: 2
steps:
- checkout: self
clean: true
submodules: true
- bash: |
set -Eeuo pipefail
docker stop watchtower || true
docker build --rm=false -t ripe-atlas .
docker images --digests ripe-atlas
BUILDER_IMAGE_ID=$(docker ps -a --format="{{.ID}}" --filter="label=image=ripe-atlas-builder" --filter="status=exited" --latest)
docker cp "$BUILDER_IMAGE_ID":/root /tmp
rm -rf /tmp/root/atlasswprobe-*-work
tar -cvzf ${BUILD_ARTIFACTSTAGINGDIRECTORY}/build-artifacts.tar.gz /tmp/root/atlasswprobe-*/
cp -r /tmp/root/atlasswprobe-*.deb ${BUILD_ARTIFACTSTAGINGDIRECTORY}
displayName: "Build image"
- task: PublishBuildArtifacts@1
inputs:
pathtoPublish: '$(Build.ArtifactStagingDirectory)'
artifactName: '$(ARCH)'
parallel: true
parallelCount: 20
- task: Docker@1
displayName: "Docker login"
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'), ne(variables['Build.Reason'], 'PullRequest'))
inputs:
containerregistrytype: 'Container Registry'
dockerRegistryEndpoint: "Docker Hub: Jamesits"
command: login
- bash: |
set -Eeuo pipefail
docker tag ripe-atlas $(DOCKER_IMAGE_BASENAME):$(DOCKER_IMAGE_TAG)
docker push $(DOCKER_IMAGE_BASENAME):$(DOCKER_IMAGE_TAG)
displayName: "Push image"
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'), ne(variables['Build.Reason'], 'PullRequest'))
- task: Docker@1
displayName: "Docker logout"
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'), ne(variables['Build.Reason'], 'PullRequest'))
inputs:
containerregistrytype: 'Container Registry'
dockerRegistryEndpoint: "Docker Hub: Jamesits"
command: logout
- bash: |
docker system prune --all --force --filter "label=image=ripe-atlas-builder"
docker system prune --all --force --filter "label=image=ripe-atlas"
docker volume prune --force --filter "label=image=ripe-atlas-builder"
docker volume prune --force --filter "label=image=ripe-atlas"
docker start watchtower || true
displayName: "Clean up"