mirror of
https://github.com/minoplhy/docker-ripe-atlas.git
synced 2025-04-21 20:36:58 +00:00
113 lines
3.2 KiB
YAML
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"
|
|
|