summaryrefslogtreecommitdiff
path: root/.gitlab-ci.yml
diff options
context:
space:
mode:
authorBenjamin Tissoires <benjamin.tissoires@gmail.com>2018-06-15 22:15:40 +0200
committerBenjamin Tissoires <benjamin.tissoires@gmail.com>2018-06-19 10:41:16 +0200
commitca60c67bc1e2e247372268dae26864ae3fb6d223 (patch)
treeda8e9d3e33315d07dd9aabf2732ceac362b42534 /.gitlab-ci.yml
parent30b9c929a6783e35acac5dbfa6416e867c67be53 (diff)
CI: do not pull images when checking for the creation date
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Benjamin Tissoires <benjamin.tissoires@gmail.com>
Diffstat (limited to '.gitlab-ci.yml')
-rw-r--r--.gitlab-ci.yml34
1 files changed, 30 insertions, 4 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index c95c8d36..189461d6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -89,17 +89,43 @@ variables:
# #
#################################################################
+# we need a minimalist image capable of curl, jq, date and test.
+# instead of using a full fedora and install the dependencies, we
+# can reuse the one from https://github.com/endeveit/docker-jq with
+# the following Dockerfile:
+# FROM alpine
+# MAINTAINER Nikita Vershinin <endeveit@gmail.com>
+#
+# RUN apk add --update --no-cache curl jq
+#
+# CMD ["sh"]
+
.docker-check: &docker_check
stage: docker_check
- services:
- - docker:dind
+ image: registry.freedesktop.org/libinput/libinput/jq:latest
script:
# get the full docker image name (CURRENT_DOCKER_IMAGE still has indirections)
- DOCKER_IMAGE=$(eval echo "$CURRENT_DOCKER_IMAGE")
+ - REPOSITORY=$(echo $DOCKER_IMAGE | cut -f2- -d/ | cut -f1 -d:)
+ - TAG=$(echo $DOCKER_IMAGE | cut -f2 -d:)
+
+ # request a token for the registry API
+ - REGISTRY_TOKEN=$(curl https://gitlab.freedesktop.org/jwt/auth --get
+ --silent --show-error
+ -d client_id=docker
+ -d offline_token=true
+ -d service=container_registry
+ -d "scope=repository:$REPOSITORY:pull,*"
+ --fail
+ --user $CI_REGISTRY_USER:$CI_JOB_TOKEN
+ | sed -r 's/(\{"token":"|"\})//g')
# get the date of the current image
- - docker pull $DOCKER_IMAGE
- - IMG_DATE="$(docker inspect -f '{{ .Created }}' $DOCKER_IMAGE | cut -dT -f1)"
+ - IMG_DATE=$(curl https://$CI_REGISTRY/v2/$REPOSITORY/manifests/$TAG --silent
+ -H "accept:application/vnd.docker.distribution.manifest.v1+json"
+ -H "authorization:Bearer $REGISTRY_TOKEN"
+ | jq -r '[.history[]]|map(.v1Compatibility|fromjson|.created)|sort|reverse|.[0]'
+ | cut -dT -f1)
- TODAY_SECS=$(date -u +%s)
- IMG_SECS=$(date -u --date="$IMG_DATE" +%s)