Skip to content

Commit

Permalink
Add GitLab CI support
Browse files Browse the repository at this point in the history
Add .gitlab-ci.yml file that supports building the docker container
on all branches, but only push to Docker Hub updated images when
code is committed to master and update the latest tag for the image
when a tag (release) is created.

Simplify docker file by just installing yottadb to /opt/yottadb/current
instead of installing to a version directory and symlinking
  • Loading branch information
Christopher Edwards authored and Christopher Edwards committed Dec 6, 2018
1 parent cc3c1ad commit 6d485ae
Show file tree
Hide file tree
Showing 2 changed files with 56 additions and 4 deletions.
55 changes: 55 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
image: docker:latest

services:
- docker:dind

stages:
- build
- push

before_script:
- docker login -u $HUB_USERNAME -p $HUB_PASSWORD

build:
artifacts:
paths:
- docker-images
stage: build
script:
- mkdir docker-images
- docker build --pull -t yottadb/yottadb:latest -f Dockerfile .
- docker save yottadb/yottadb:latest > docker-images/app.tar

push:
stage: push
script:
- docker load -i docker-images/app.tar
- docker tag yottadb/yottadb:latest yottadb/yottadb:latest-master
- docker push yottadb/yottadb:latest-master
- docker tag yottadb/yottadb:latest-master yottadb/yottadb:$(grep YDB_ZYRELEASE sr_*/release_name.h | grep -o '\(r[0-9.]*\)' | sort -u)
- docker push yottadb/yottadb:$(grep YDB_ZYRELEASE sr_*/release_name.h | grep -o '\(r[0-9.]*\)' | sort -u)
- 'echo -e "FROM yottadb/yottadb:latest-master\n ENTRYPOINT []" > BareDockerfile'
- cat BareDockerfile
- docker build --pull -t yottadb/yottadb-base:latest-master -f BareDockerfile .
- docker push yottadb/yottadb-base:latest-master
- docker tag yottadb/yottadb-base:latest-master yottadb/yottadb-base:$(grep YDB_ZYRELEASE sr_*/release_name.h | grep -o '\(r[0-9.]*\)' | sort -u)
- docker push yottadb/yottadb-base:$(grep YDB_ZYRELEASE sr_*/release_name.h | grep -o '\(r[0-9.]*\)' | sort -u)
only:
- master

push-release:
stage: push
script:
- docker load -i docker-images/app.tar
- docker push yottadb/yottadb:latest
- docker tag yottadb/yottadb:latest yottadb/yottadb:$(grep YDB_ZYRELEASE sr_*/release_name.h | grep -o '\(r[0-9.]*\)' | sort -u)
- docker push yottadb/yottadb:$(grep YDB_ZYRELEASE sr_*/release_name.h | grep -o '\(r[0-9.]*\)' | sort -u)
- 'echo -e "FROM yottadb/yottadb:latest\n ENTRYPOINT []" > BareDockerfile'
- cat BareDockerfile
- docker build --pull -t yottadb/yottadb-base:latest -f BareDockerfile .
- docker push yottadb/yottadb-base:latest
- docker tag yottadb/yottadb-base:latest yottadb/yottadb-base:$(grep YDB_ZYRELEASE sr_*/release_name.h | grep -o '\(r[0-9.]*\)' | sort -u)
- docker push yottadb/yottadb-base:$(grep YDB_ZYRELEASE sr_*/release_name.h | grep -o '\(r[0-9.]*\)' | sort -u)
only:
- tag

5 changes: 1 addition & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -63,15 +63,12 @@ RUN apt-get update \
RUN locale-gen en_US.UTF-8
WORKDIR /data
COPY --from=ydb-release-builder /tmp/yottadb-release /tmp/yottadb-release
COPY --from=ydb-release-builder /tmp/yottadb-src/.yottadb.vsn /tmp/yottadb-release/
RUN cd /tmp/yottadb-release \
&& icu-config --version \
> /tmp/yottadb-release/.icu.vsn \
&& ./ydbinstall \
--utf8 `cat /tmp/yottadb-release/.icu.vsn` \
--installdir /opt/yottadb/`cat /tmp/yottadb-release/.yottadb.vsn`-`uname -p` \
&& cd /opt/yottadb \
&& ln -s `cat /tmp/yottadb-release/.yottadb.vsn`-`uname -p` current \
--installdir /opt/yottadb/current \
&& rm -rf /tmp/yottadb-release
ENV gtmdir=/data \
LANG=en_US.UTF-8 \
Expand Down

0 comments on commit 6d485ae

Please sign in to comment.