| 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 |
| |