blob: 37cb40532f4368e3a079fdceac8bd446da99f1b2 [file] [log] [blame]
Marc Kupietze45ed912026-05-04 19:45:29 +02001# use the verse rocker image, as it contains tidyverse, remotes and some texlive
Marc Kupietzb80aa782023-10-08 23:33:26 +02002image: rocker/tidyverse
3
4# define stages of runner. at the moment,
5# just build (no test or deploy).
6stages:
7 - build
8
9build-job:
10 stage: build
11
12 cache:
13 key: revealjs
14 paths:
15 - ./cache
16
17 artifacts:
18 paths:
19 - "target/*"
Marc Kupietzfbf254d2023-10-09 15:10:42 +020020 - "target/ids_files/*"
Marc Kupietzb80aa782023-10-08 23:33:26 +020021
22 before_script:
23 - source `find .. -name section_helper.sh`
Marc Kupietzb80aa782023-10-08 23:33:26 +020024 - start_section install_linux_packages "Installing missing Linux packages"
25 - apt-get update
Marc Kupietze45ed912026-05-04 19:45:29 +020026 - apt-get install -y libvulkan1 libu2f-udev fonts-liberation build-essential
27 libglpk40 libcurl4-gnutls-dev libxml2-dev libsodium-dev libsecret-1-dev
28 libfontconfig1-dev libssl-dev libxt6 libpq-dev imagemagick libnss3
Marc Kupietz1212b872026-08-08 17:18:22 +020029 libuv1t64 libgbm-dev libxss1 libappindicator3-1 libasound2t64
30 libatk-bridge2.0-0 libgtk-3-0 libnspr4 libnss3 libgbm-dev ca-certificates
31 curl gnupg
Marc Kupietze45ed912026-05-04 19:45:29 +020032 - curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key |
33 sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg
Marc Kupietz02d582a2023-10-09 20:11:52 +020034 - NODE_MAJOR=20
Marc Kupietze45ed912026-05-04 19:45:29 +020035 - echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg]
36 https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | tee
37 /etc/apt/sources.list.d/nodesource.list
Marc Kupietz02d582a2023-10-09 20:11:52 +020038 - apt-get update && apt-get install nodejs -y
39 - node --version
40 - npm install puppeteer
Marc Kupietzb80aa782023-10-08 23:33:26 +020041 - locale-gen de_DE.utf8 en_GB.utf8 en_US.utf8
Marc Kupietzb80aa782023-10-08 23:33:26 +020042 - end_section install_linux_packages
43
Marc Kupietz24a129b2023-10-10 14:04:32 +020044 - start_section setup_deployment "Setup deployment"
Marc Kupietze45ed912026-05-04 19:45:29 +020045 - "command -v ssh-agent >/dev/null || apt-get install openssh-client -y"
Marc Kupietz24a129b2023-10-10 14:04:32 +020046
Marc Kupietze45ed912026-05-04 19:45:29 +020047 ##
48 ## Run ssh-agent (inside the build environment)
49 ##
Marc Kupietz24a129b2023-10-10 14:04:32 +020050 - eval $(ssh-agent -s)
51
Marc Kupietze45ed912026-05-04 19:45:29 +020052 ##
53 ## Give the right permissions, otherwise ssh-add will refuse to add files
54 ## Add the SSH key stored in SSH_PRIVATE_KEY file type CI/CD variable to the agent store
55 ##
Marc Kupietz24a129b2023-10-10 14:04:32 +020056 - chmod 400 "$SSH_PRIVATE_KEY"
57 - ssh-add "$SSH_PRIVATE_KEY"
58
Marc Kupietze45ed912026-05-04 19:45:29 +020059 ##
60 ## Create the SSH directory and give it the right permissions
61 ##
Marc Kupietz24a129b2023-10-10 14:04:32 +020062 - mkdir -p ~/.ssh
63 - chmod 700 ~/.ssh
64 - end_section setup_deployment
65
Marc Kupietz02d582a2023-10-09 20:11:52 +020066 - start_section test_puppeteer "Testing puppeteer"
67 - ./ci/screenshot https://www.google.com /tmp/google.png
68 - end_section test_puppeteer
Marc Kupietzfbf254d2023-10-09 15:10:42 +020069
Marc Kupietzb80aa782023-10-08 23:33:26 +020070 - start_section install_r_packages "Installing missing R packages"
Marc Kupietze45ed912026-05-04 19:45:29 +020071 - R -e "install.packages(c('devtools', 'remotes', 'RKorAPClient', 'httr',
72 'tidytext', 'httpuv', 'scales', 'sp', 'raster', 'kableExtra', 'DT',
73 'svglite', 'qrcode', 'rsvg', 'highcharter'))"
74 - R -e
75 'remotes::install_git("https://korap.ids-mannheim.de/gerrit/IDS-Mannheim/idsThemeR")'
Marc Kupietz2b548bc2023-10-09 07:21:59 +020076 - R -e 'devtools::install(".")'
Marc Kupietzb80aa782023-10-08 23:33:26 +020077 - end_section install_r_packages
78
79 script:
80 - start_section render "Running scripts"
Marc Kupietze45ed912026-05-04 19:45:29 +020081 - R_CACHE_ROOTPATH=./cache R -e "require(rmarkdown);
82 render('examples/ids.Rmd',
83 output_format='revealjs::revealjs_presentation', output_dir='target')"
Marc Kupietz02d582a2023-10-09 20:11:52 +020084 - ./ci/screenshot file://`pwd`/target/ids.html target/title.png
Marc Kupietze45ed912026-05-04 19:45:29 +020085 file://`pwd`/target/ids.html#/light-verb-constructions target/lvc.png
86 file://`pwd`/target/ids.html#/registered-users target/users.png
87 file://`pwd`/target/ids.html#/references-1 target/references.png
Marc Kupietzb80aa782023-10-08 23:33:26 +020088 - end_section render
Marc Kupietz24a129b2023-10-10 14:04:32 +020089 - start_section deploy "Deploying slides"
Marc Kupietze45ed912026-05-04 19:45:29 +020090 - scp -ro StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null
91 target/ids*
92 cowner@klinux10:/vol/work/kupietz/slides/2023-10-08-Revealjs-demo/