diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 94377a9a6161080d903dabb1ada5fd6cc5f5a5ea..fa0d95a44a58eb08021cecf1c443a1372567d630 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,6 +4,12 @@ image: docker.km3net.de/base/python:3 # only cache local items. variables: PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" + DOCKER_HOST: tcp://docker:2375 + DOCKER_DRIVER: overlay2 + CONTAINER_TEST_IMAGE: docker.km3net.de/test/km3io:$CI_COMMIT_REF_SLUG + CONTAINER_RELEASE_IMAGE: docker.km3net.de/km3io:$CI_COMMIT_TAG + CONTAINER_LATEST_IMAGE: docker.km3net.de/km3io:latest + SINGULARITY_RELEASE_IMAGE: km3io_${CI_COMMIT_TAG}.sif cache: paths: @@ -14,6 +20,8 @@ stages: - test - coverage - doc + - docker + - singularity - release .virtualenv_template: &virtualenv_definition | @@ -103,6 +111,20 @@ pages: - master +docker: + image: docker:stable + services: + - docker:dind + stage: docker + script: + - docker build --pull -t $CONTAINER_TEST_IMAGE . + - docker push $CONTAINER_TEST_IMAGE + tags: + - docker + only: + - tags + + pypi: image: docker.km3net.de/base/python:3 stage: release @@ -127,3 +149,31 @@ cc-lyon: - tags - master allow_failure: true + +release-docker: + image: docker:stable + services: + - docker:dind + stage: release + script: + - docker pull $CONTAINER_TEST_IMAGE + - docker tag $CONTAINER_TEST_IMAGE $CONTAINER_RELEASE_IMAGE + - docker tag $CONTAINER_TEST_IMAGE $CONTAINER_LATEST_IMAGE + - docker push $CONTAINER_RELEASE_IMAGE + - docker push $CONTAINER_LATEST_IMAGE + tags: + - docker + only: + - tags + +release-singularity: + image: docker.km3net.de/base/singularity:3.6.2 + stage: release + script: + - singularity build $SINGULARITY_RELEASE_IMAGE docker://$CONTAINER_TEST_IMAGE + - du -sh $SINGULARITY_RELEASE_IMAGE + - mkdir -p ~/.ssh && ssh-keyscan -H -t rsa $KM3NET_SFTP_HOST >> ~/.ssh/known_hosts + - apt install -q lftp + - lftp -u $KM3NET_SFTP_USER,$KM3NET_SFTP_PASSWORD sftp://$KM3NET_SFTP_HOST -e "set ssl:verify-certificate no; cd singularity/; put $SINGULARITY_RELEASE_IMAGE; bye" + only: + - tags diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000000000000000000000000000000000..6c423e74e29250c674ce17b61b6c8c79cd89470c --- /dev/null +++ b/Dockerfile @@ -0,0 +1,15 @@ +FROM debian:buster-slim +LABEL maintainer="Tamas Gal <tgal@km3net.de>" + + ENV INSTALL_DIR /km3io + + RUN apt-get update + RUN apt-get install -y -qq git python3-pip && apt-get -y clean && apt-get autoclean + RUN python3 -m pip install --upgrade pip setuptools wheel + + ADD . $INSTALL_DIR + RUN cd $INSTALL_DIR && python3 -m pip install . ".[dev]" ".[extras]" + + # Clean up + RUN cd / && rm -rf $INSTALL_DIR + RUN rm -rf /var/cache