Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
Marcel Huber
docker-arch-yaourt
Commits
fb7fb6f0
Commit
fb7fb6f0
authored
Jul 05, 2018
by
Marcel Huber
Browse files
simplified build
parent
aabb62d2
Pipeline
#8307
passed with stages
in 1 minute and 13 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
.gitlab-ci.yml
View file @
fb7fb6f0
image
:
docker:latest
variables
:
MY_IMAGE_NAME
:
"
ArchLinux
yaourt
build
image"
MY_BUILT_IMAGE
:
$CI_REGISTRY_IMAGE:archyaourt
MY_DOCKER_IMAGE
:
marcelhuberfoo/arch-yaourt
MY_DOCKER_FILE
:
Dockerfile
MY_DOCKER_CONTEXT
:
.
IMAGE_NAME
:
"
ArchLinux
yaourt
build
image"
LOCAL_IMAGE
:
$CI_REGISTRY_IMAGE/arch-yaourt
LOCAL_IMAGE_TAG
:
$CI_REGISTRY_IMAGE/arch-yaourt:$CI_COMMIT_REF_NAME
REMOTE_IMAGE
:
marcelhuberfoo/arch-yaourt
stages
:
-
build
-
test
-
deploy
before_script
:
build
:
BuildImage
:
stage
:
build
tags
:
-
docker
script
:
-
apk --no-cache --quiet add git
-
./build.sh
-
docker build --no-cache
--label org.label-schema.build-date=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
--label org.label-schema.name="$IMAGE_NAME"
--label org.label-schema.url="$CI_PROJECT_URL"
--label org.label-schema.schema-version="1.0"
--label org.label-schema.vcs-ref="$CI_COMMIT_SHA"
--label org.label-schema.vcs-url="$(echo $CI_REPOSITORY_URL | sed 's|gitlab-ci-token[^@]*@||')"
--label org.label-schema.vendor="me"
--label org.label-schema.version="$CI_COMMIT_REF_NAME"
--tag=$LOCAL_IMAGE_TAG
--file=Dockerfile
.
-
docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
-
docker push $
MY_BUILT
_IMAGE
-
docker push $
LOCAL
_IMAGE
_TAG
t
est
:
T
est
Image
:
stage
:
test
tags
:
-
docker
script
:
-
docker run --rm $
MY_BUILT
_IMAGE yaourt --version
-
docker run --rm $
LOCAL
_IMAGE
_TAG
yaourt --version
deploy
:
TagImage
:
stage
:
deploy
tags
:
-
docker
only
:
-
tags
-
triggers
tags
:
-
docker
script
:
-
apk --no-cache --quiet add curl
-
docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
-
docker pull $MY_BUILT_IMAGE
-
docker login -u "$DOCKER_USER" -p "$DOCKER_PASS"
-
docker tag ${MY_BUILT_IMAGE} ${MY_DOCKER_IMAGE}:latest
-
docker tag ${MY_BUILT_IMAGE} ${MY_DOCKER_IMAGE}:$(docker run --rm --entrypoint /bin/sh $MY_DOCKER_IMAGE -c 'echo -n ${BUILD_TAG}')
-
docker push ${MY_DOCKER_IMAGE}:latest
-
docker push ${MY_DOCKER_IMAGE}:$(docker run --rm --entrypoint /bin/sh $MY_DOCKER_IMAGE -c 'echo -n ${BUILD_TAG}')
-
if [ -n "$MICROBADGER_UPDATE_HOOK" ]; then curl --silent --request POST $MICROBADGER_UPDATE_HOOK; fi
-
if [ -n "$TRIGGER_URL" ]; then curl --silent --request POST --form token=$TRIGGER_TOKEN --form ref=master $TRIGGER_URL; fi
-
docker image tag $LOCAL_IMAGE_TAG $LOCAL_IMAGE:$CI_COMMIT_TAG
-
test -n "$DOCKER_USER" && {
docker login -u "$DOCKER_USER" -p "$DOCKER_PASS";
docker tag $LOCAL_IMAGE_TAG $REMOTE_IMAGE:latest;
docker tag $LOCAL_IMAGE_TAG $REMOTE_IMAGE:$CI_COMMIT_TAG;
docker push $REMOTE_IMAGE:latest;
docker push $REMOTE_IMAGE:$CI_COMMIT_TAG;
} ||
true
-
test -n "$MICROBADGER_UPDATE_HOOK" && {
apk --no-cache add curl;
curl --silent --request POST $MICROBADGER_UPDATE_HOOK;
} ||
true
-
test -n "$TRIGGER_URL" && {
apk --no-cache add curl;
curl --silent --request POST --form token=$TRIGGER_TOKEN --form ref=master $TRIGGER_URL;
} ||
true
Dockerfile
View file @
fb7fb6f0
FROM
marcelhuberfoo/arch-build
MAINTAINER
Marcel Huber <marcelhuberfoo@gmail.com>
ARG
BUILD_TIME
ARG
BUILD_DATE
ARG
BUILD_TAG
ARG
MY_IMAGE_NAME
ARG
MY_DOCKER_FILE
ARG
CI_PROJECT_URL
ARG
VCS_REF
ARG
VCS_URL
LABEL
org.label-schema.build-date="$BUILD_TIME" \
org.label-schema.docker.dockerfile="$MY_DOCKER_FILE" \
org.label-schema.name="$MY_IMAGE_NAME" \
org.label-schema.url="$CI_PROJECT_URL" \
org.label-schema.vcs-ref="$VCS_REF" \
org.label-schema.vcs-url="$VCS_URL" \
org.label-schema.version="$BUILD_TAG" \
org.label-schema.schema-version="1.0"
ENV
BUILD_DATE=$BUILD_DATE
ENV
BUILD_TAG=$BUILD_TAG
USER
$UNAME
RUN
cd
/tmp
&&
\
git clone https://aur.archlinux.org/package-query.git
&&
\
...
...
build.sh
deleted
100755 → 0
View file @
aabb62d2
#!/bin/sh
_BUILD_TAG
=
"
$(
git describe
--abbrev
=
0
--tags
2>/dev/null
)
"
_VCS_URL
=
"
$(
echo
$CI_REPOSITORY_URL
|
sed
's|gitlab-ci-token[^@]*@||'
)
"
_CI_PROJECT_URL
=
"
${
CI_PROJECT_URL
:-
https
://gitlab.dev.ifs.hsr.ch/
}
"
if
[
-n
"
$_BUILD_TAG
"
]
;
then
_revs_ahead_tag
=
$(
git rev-list
--count
${
_BUILD_TAG
}
..
)
_commit_id_short
=
$(
git log
-1
--format
=
%h
)
_VCS_REF
=
"
$(
echo
$_BUILD_TAG
|
sed
-e
's/^[-_/a-zA-Z]\+//'
-e
's/[-_+]/./g'
)
.
${
_revs_ahead_tag
}
.g
${
_commit_id_short
}
"
else
_VCS_REF
=
"0.
$(
git rev-list
--count
${
CI_COMMIT_SHA_NAME
:-
master
}
)
.g
$(
git log
-1
--format
=
%h
)
"
fi
set
-e
docker build
\
--build-arg
MY_DOCKER_FILE
=
"
$MY_DOCKER_FILE
"
\
--build-arg
MY_IMAGE_NAME
=
"
$MY_IMAGE_NAME
"
\
--build-arg
BUILD_TIME
=
$(
date
-u
+
"%Y-%m-%dT%H:%M:%SZ"
)
\
--build-arg
BUILD_DATE
=
$(
date
+
"%Y%m%d"
)
\
--build-arg
BUILD_TAG
=
$_BUILD_TAG
\
--build-arg
CI_PROJECT_URL
=
$_CI_PROJECT_URL
\
--build-arg
VCS_REF
=
$_VCS_REF
\
--build-arg
VCS_URL
=
$_VCS_URL
\
--tag
=
$MY_BUILT_IMAGE
--file
=
$MY_DOCKER_FILE
$MY_DOCKER_CONTEXT
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment