|  | stages: | 
|  | - build-and-test | 
|  | - build-docker-image | 
|  |  | 
|  | build-and-test: | 
|  | image: rocker/tidyverse | 
|  | stage: build-and-test | 
|  | cache: | 
|  | key: korap | 
|  | paths: | 
|  | - ./cache | 
|  | before_script: | 
|  | - source `find .. -name section_helper.sh` | 
|  |  | 
|  | - start_section install_linux_packages "Installing missing Linux packages" | 
|  | - apt-get update | 
|  | - apt-get install -y libu2f-udev build-essential libglpk40 libcurl4-gnutls-dev libxml2-dev libsodium-dev libsecret-1-dev libfontconfig1-dev libssl-dev libxt6 libpq-dev curl | 
|  | - end_section install_linux_packages | 
|  |  | 
|  | - start_section install_r_packages "Installing missing R packages" | 
|  | - R -e "install.packages(c('devtools', 'RKorAPClient', 'httr', 'shiny', 'shinythemes', 'highcharter'))" | 
|  | - R -e 'devtools::install_git("https://korap.ids-mannheim.de/gerrit/IDS-Mannheim/idsThemeR")' | 
|  | - end_section install_r_packages | 
|  |  | 
|  | script: | 
|  | - start_section render "Running scripts" | 
|  | - echo 'options(shiny.port=18000)' >> ~/.Rprofile | 
|  | - R_CACHE_ROOTPATH=./cache Rscript shiny/app.R & | 
|  | - PID=$! | 
|  | - sleep 10 | 
|  | - curl http://127.0.0.1:18000/ | 
|  | - kill $PID | 
|  | - end_section render | 
|  |  | 
|  | build-docker-image: | 
|  | image: docker:latest | 
|  | services: | 
|  | - docker:dind | 
|  | rules: | 
|  | - if: $CI_COMMIT_TAG =~ /.+/ | 
|  | variables: | 
|  | VID: $CI_COMMIT_TAG | 
|  | - when: manual | 
|  | variables: | 
|  | VID_ALT: $CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA | 
|  | VID: snapshot | 
|  | stage: build-docker-image | 
|  | cache: | 
|  | key: korap | 
|  | paths: | 
|  | - cache/ | 
|  | before_script: | 
|  | - mkdir -p cache | 
|  | - apk update | 
|  | - apk add --no-cache git | 
|  | - > | 
|  | apk add -u curl | 
|  | && curl -L -o ds.tar.gz https://downloads.dockerslim.com/releases/1.40.6/dist_linux.tar.gz | 
|  | && tar -xvf ds.tar.gz | 
|  | && mv dist_linux/* /usr/local/bin/ | 
|  | script: | 
|  | - docker build -f Dockerfile -t korap/corpuscomposition:$VID . | 
|  | - docker run -d --rm --name corpuscomposition korap/corpuscomposition:$VID | 
|  | - docker cp corpuscomposition:/cache ./ | 
|  | - docker kill corpuscomposition | 
|  | - slim build --sensor-ipc-mode proxy --http-probe-off --include-path /usr/local --include-path /cache korap/corpuscomposition | 
|  | - docker save korap/corpuscomposition.slim | xz -T0 > corpuscomposition-$VID.xz | 
|  | artifacts: | 
|  | paths: | 
|  | - corpuscomposition-$VID.xz | 
|  |  |