blob: b95a1467417ff1980a9df646474df5e549378ed0 [file] [log] [blame]
image: docker:latest
services:
- docker:dind
stages:
- build
- deploy
build-docker:
rules:
- if: $CI_COMMIT_TAG =~ /.+/
variables:
VID: $CI_COMMIT_TAG
- when: manual
variables:
VID: $CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA
stage: build
before_script:
- apk update
- apk add --no-cache git
script:
- docker build -f Dockerfile -t korap/kalamar:$VID-large --target kalamar .
- docker run --rm -v /var/run/docker.sock:/var/run/docker.sock dslim/slim build --http-probe=true --exec="perl Makefile.PL && make test && unzip -v" --include-workdir=true --include-path=/usr/local/share/perl5/site_perl/KorAP/ --include-path=/usr/local/share/perl5/site_perl/Mojolicious/ --include-path=/usr/local/share/perl5/site_perl/Mojo/ --tag korap/kalamar:$VID --tag korap/kalamar:latest korap/kalamar:$VID-large
- ARTIFACT=kalamar-${VID}.tar.xz
- docker save korap/kalamar:$VID | xz -T0 -M16G -9 > "$ARTIFACT"
artifacts:
paths:
- kalamar-*.tar.xz
push-dockerhub:
stage: deploy
needs:
- job: build-docker
artifacts: true
dependencies:
- build-docker
rules:
- if: $CI_COMMIT_TAG =~ /^v.+/
when: manual
- when: never
script:
- apk update
- apk add --no-cache xz
- echo "$DOCKERHUB_TOKEN" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin
- ARTIFACT=kalamar-${CI_COMMIT_TAG}.tar.xz
- xz -d -c "$ARTIFACT" | docker load
- docker tag korap/kalamar:$CI_COMMIT_TAG korap/kalamar:latest
- docker tag korap/kalamar:$CI_COMMIT_TAG korap/kalamar:latest-conv
- docker push korap/kalamar:$CI_COMMIT_TAG
- docker push korap/kalamar:latest
- docker push korap/kalamar:latest-conv