Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make the azure pipelines really test new contaiers. #224

Merged
merged 2 commits into from
Mar 9, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
175 changes: 104 additions & 71 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,19 @@ jobs:
strategy:
maxParallel: 10
matrix:
snapshot_ubuntu:
snapshot_ubuntu1604:
VERSION: snapshot
VARIANT: ubuntu
VARIANT: ubuntu1604
PARENT: ubuntu
ISPARENT: False
snapshot_ubuntu1804:
VERSION: snapshot
VARIANT: ubuntu1804
PARENT: ubuntu
ISPARENT: True
snapshot_alpine:
snapshot_alpine311:
VERSION: snapshot
VARIANT: alpine
VARIANT: alpine311
PARENT: alpine
ISPARENT: True
snapshot_centos7:
Expand All @@ -30,29 +35,34 @@ jobs:
VARIANT: centos8
PARENT: centos
ISPARENT: True
snapshot_scratch:
snapshot_scratch311:
VERSION: snapshot
VARIANT: scratch
VARIANT: scratch311
PARENT: scratch
ISPARENT: True
snapshot_vaapi:
snapshot_vaapi1804:
VERSION: snapshot
VARIANT: vaapi
VARIANT: vaapi1804
PARENT: vaapi
ISPARENT: True
snapshot_nvidia:
snapshot_nvidia1804:
VERSION: snapshot
VARIANT: nvidia
VARIANT: nvidia1804
PARENT: nvidia
ISPARENT: True
4_2_ubuntu:
4_2_ubuntu1604:
VERSION: 4.2
VARIANT: ubuntu
VARIANT: ubuntu1604
PARENT: ubuntu
ISPARENT: False
4_2_ubuntu1804:
VERSION: 4.2
VARIANT: ubuntu1804
PARENT: ubuntu
ISPARENT: True
4_2_alpine:
4_2_alpine311:
VERSION: 4.2
VARIANT: alpine
VARIANT: alpine311
PARENT: alpine
ISPARENT: True
4_2_centos7:
Expand All @@ -65,29 +75,34 @@ jobs:
VARIANT: centos8
PARENT: centos
ISPARENT: True
4_2_scratch:
4_2_scratch311:
VERSION: 4.2
VARIANT: scratch
VARIANT: scratch311
PARENT: scratch
ISPARENT: True
4_2_vaapi:
4_2_vaapi1804:
VERSION: 4.2
VARIANT: vaapi
VARIANT: vaapi1804
PARENT: vaapi
ISPARENT: True
4_2_nvidia:
4_2_nvidia1804:
VERSION: 4.2
VARIANT: nvidia
VARIANT: nvidia1804
PARENT: nvidia
ISPARENT: True
4_1_ubuntu:
4_1_ubuntu1604:
VERSION: 4.1
VARIANT: ubuntu1604
PARENT: ubuntu
ISPARENT: False
4_1_ubuntu1804:
VERSION: 4.1
VARIANT: ubuntu
VARIANT: ubuntu1804
PARENT: ubuntu
ISPARENT: True
4_1_alpine:
4_1_alpine311:
VERSION: 4.1
VARIANT: alpine
VARIANT: alpine311
PARENT: alpine
ISPARENT: True
4_1_centos7:
Expand All @@ -100,29 +115,34 @@ jobs:
VARIANT: centos8
PARENT: centos
ISPARENT: True
4_1_scratch:
4_1_scratch311:
VERSION: 4.1
VARIANT: scratch
VARIANT: scratch311
PARENT: scratch
ISPARENT: True
4_1_vaapi:
4_1_vaapi1804:
VERSION: 4.1
VARIANT: vaapi
VARIANT: vaapi1804
PARENT: vaapi
ISPARENT: True
4_1_nvidia:
4_1_nvidia1804:
VERSION: 4.1
VARIANT: nvidia
VARIANT: nvidia1804
PARENT: nvidia
ISPARENT: True
4_0_ubuntu:
4_0_ubuntu1604:
VERSION: 4.0
VARIANT: ubuntu
VARIANT: ubuntu1604
PARENT: ubuntu
ISPARENT: False
4_0_ubuntu1804:
VERSION: 4.0
VARIANT: ubuntu1804
PARENT: ubuntu
ISPARENT: True
4_0_alpine:
4_0_alpine311:
VERSION: 4.0
VARIANT: alpine
VARIANT: alpine311
PARENT: alpine
ISPARENT: True
4_0_centos7:
Expand All @@ -135,29 +155,34 @@ jobs:
VARIANT: centos8
PARENT: centos
ISPARENT: True
4_0_scratch:
4_0_scratch311:
VERSION: 4.0
VARIANT: scratch
VARIANT: scratch311
PARENT: scratch
ISPARENT: True
4_0_vaapi:
4_0_vaapi1804:
VERSION: 4.0
VARIANT: vaapi
VARIANT: vaapi1804
PARENT: vaapi
ISPARENT: True
4_0_nvidia:
4_0_nvidia1804:
VERSION: 4.0
VARIANT: nvidia
VARIANT: nvidia1804
PARENT: nvidia
ISPARENT: True
3_4_ubuntu:
3_4_ubuntu1604:
VERSION: 3.4
VARIANT: ubuntu
VARIANT: ubuntu1604
PARENT: ubuntu
ISPARENT: False
3_4_ubuntu1804:
VERSION: 3.4
VARIANT: ubuntu1804
PARENT: ubuntu
ISPARENT: True
3_4_alpine:
3_4_alpine311:
VERSION: 3.4
VARIANT: alpine
VARIANT: alpine311
PARENT: alpine
ISPARENT: True
3_4_centos7:
Expand All @@ -170,29 +195,34 @@ jobs:
VARIANT: centos8
PARENT: centos
ISPARENT: True
3_4_scratch:
3_4_scratch311:
VERSION: 3.4
VARIANT: scratch
VARIANT: scratch311
PARENT: scratch
ISPARENT: True
3_4_vaapi:
3_4_vaapi1804:
VERSION: 3.4
VARIANT: vaapi
VARIANT: vaapi1804
PARENT: vaapi
ISPARENT: True
3_4_nvidia:
3_4_nvidia1804:
VERSION: 3.4
VARIANT: nvidia
VARIANT: nvidia1804
PARENT: nvidia
ISPARENT: True
3_3_ubuntu:
3_3_ubuntu1604:
VERSION: 3.3
VARIANT: ubuntu1604
PARENT: ubuntu
ISPARENT: False
3_3_ubuntu1804:
VERSION: 3.3
VARIANT: ubuntu
VARIANT: ubuntu1804
PARENT: ubuntu
ISPARENT: True
3_3_alpine:
3_3_alpine311:
VERSION: 3.3
VARIANT: alpine
VARIANT: alpine311
PARENT: alpine
ISPARENT: True
3_3_centos7:
Expand All @@ -205,55 +235,58 @@ jobs:
VARIANT: centos8
PARENT: centos
ISPARENT: True
3_3_scratch:
3_3_scratch311:
VERSION: 3.3
VARIANT: scratch
VARIANT: scratch311
PARENT: scratch
ISPARENT: True
3_3_vaapi:
3_3_vaapi1804:
VERSION: 3.3
VARIANT: vaapi
VARIANT: vaapi1804
PARENT: vaapi
ISPARENT: True
3_3_nvidia:
3_3_nvidia1804:
VERSION: 3.3
VARIANT: nvidia
VARIANT: nvidia1804
PARENT: nvidia
ISPARENT: True
3_2_ubuntu:
3_2_ubuntu1604:
VERSION: 3.2
VARIANT: ubuntu
VARIANT: ubuntu1604
PARENT: ubuntu
ISPARENT: True
3_2_alpine:
3_2_alpine38:
VERSION: 3.2
VARIANT: alpine
VARIANT: alpine38
PARENT: alpine
ISPARENT: True
3_2_centos7:
VERSION: 3.2
VARIANT: centos7
PARENT: centos
ISPARENT: True
3_2_scratch:
3_2_scratch38:
VERSION: 3.2
VARIANT: scratch
VARIANT: scratch38
PARENT: scratch
ISPARENT: True
3_2_vaapi:
3_2_vaapi1604:
VERSION: 3.2
VARIANT: vaapi
VARIANT: vaapi1604
PARENT: vaapi
ISPARENT: True
3_2_nvidia:
3_2_nvidia1604:
VERSION: 3.2
VARIANT: nvidia
VARIANT: nvidia1604
PARENT: nvidia
ISPARENT: True
steps:
- bash: |
docker build -t ${DOCKER}:${VERSION}-${VARIANT} --build-arg MAKEFLAGS="-j$(($(grep -c ^processor /proc/cpuinfo) + 1))" docker-images/${VERSION}/${VARIANT}
docker run --rm ${DOCKER}:${VERSION}-${VARIANT} -buildconf
# Create a uniquely tagged version of the container to avoid pulling a version that was already on docker hub
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not sold on that, if you have a local image with the exact tag to run, docker won't pull from the registry

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But when the build actually fails you don't have a local image with that tag to run, which is why it pulls from the registry when the build fails.

If you don't use an image name that exists in the registry (ie. something that is unique and local) then you can validate that it runs with a normal docker run without risking it pulling the image from the internet because the same tag already exists.

There's a proposal to make it possible to use a --pull=never flag here: https://github.com/docker/cli/issues/2253 but it's probably not going to make it into a distro version of docker anytime soon.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So this is the sort of error case that doesn't get picked up if you don't use a unique name for the container to test:
https://dev.azure.com/video-tools/ffmpeg/_build/results?buildId=249&view=logs&j=6c6ac11e-9aaf-54db-7582-26c7d72f5185&t=c27d90b2-ebe3-5e65-dd76-20de7046977f&l=13782

If you look at the lines below that, it simply ends up just pulling the image from dockerhub and is obviously successfuly, because the version that was published obviously did build successfully.

docker tag ${DOCKER}:${VERSION}-${VARIANT} ${DOCKER}:${VERSION}-${VARIANT}-$(Build.BuildId)
# Run -buildconf from the unique version we just tagged to make sure the build was ok
docker run --rm ${DOCKER}:${VERSION}-${VARIANT}-$(Build.BuildId) -buildconf
displayName: Build docker image
- bash: |
docker login --username ${DOCKER_LOGIN} --password ${DOCKER_PASSWORD}
Expand Down
Loading