| Marc Kupietz | d96aa5a | 2025-10-26 16:09:23 +0100 | [diff] [blame] | 1 | stages: |
| 2 | - test |
| 3 | - build |
| 4 | |
| Rebecca Wilm | afbcd7f | 2022-11-09 16:46:48 +0100 | [diff] [blame] | 5 | default: |
| Marc Kupietz | b1c30b2 | 2024-02-05 07:03:51 +0100 | [diff] [blame] | 6 | image: python:3.12-bookworm |
| Rebecca Wilm | afbcd7f | 2022-11-09 16:46:48 +0100 | [diff] [blame] | 7 | |
| 8 | variables: |
| 9 | PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip" |
| 10 | |
| 11 | cache: |
| 12 | paths: |
| 13 | - .cache/pip |
| 14 | - venv/ |
| 15 | |
| 16 | before_script: |
| 17 | - python -m venv venv |
| 18 | - source venv/bin/activate |
| 19 | - export PYTHONPATH=PYTHONPATH:. |
| Marc Kupietz | 772a06d | 2025-10-30 11:40:35 +0100 | [diff] [blame^] | 20 | - venv/bin/pip install --upgrade pip --quiet |
| 21 | - pip install -r requirements.txt --quiet |
| 22 | - python -m spacy download de_core_news_lg --quiet 2>&1 | tail -5 |
| Rebecca Wilm | afbcd7f | 2022-11-09 16:46:48 +0100 | [diff] [blame] | 23 | |
| 24 | test-job: |
| 25 | stage: test |
| Marc Kupietz | fc34de6 | 2024-02-01 12:04:27 +0100 | [diff] [blame] | 26 | artifacts: |
| 27 | paths: |
| Marc Kupietz | 772a06d | 2025-10-30 11:40:35 +0100 | [diff] [blame^] | 28 | - rei.test.spacy.conllu.xz |
| 29 | - logs/ |
| 30 | when: always |
| Rebecca Wilm | afbcd7f | 2022-11-09 16:46:48 +0100 | [diff] [blame] | 31 | script: |
| Marc Kupietz | 772a06d | 2025-10-30 11:40:35 +0100 | [diff] [blame^] | 32 | - mkdir -p logs |
| 33 | - echo "Testing with 100,000 lines from rei.test.conllu" |
| 34 | - cat rei.test.conllu | python ./systems/parse_spacy_pipe.py --corpus_name rei_test 2>&1 | tee rei.test.spacy.conllu | tail -20 |
| 35 | - echo "Checking output validity..." |
| 36 | - test -s rei.test.spacy.conllu || (echo "Output file is empty!" && exit 1) |
| 37 | - (! grep -E '^0\s' rei.test.spacy.conllu) || (echo "Found invalid line starting with 0!" && exit 1) |
| 38 | - echo "Compressing output..." |
| 39 | - xz rei.test.spacy.conllu |
| 40 | - ls -lh rei.test.spacy.conllu.xz |
| 41 | - echo "Test passed successfully" |
| Marc Kupietz | d96aa5a | 2025-10-26 16:09:23 +0100 | [diff] [blame] | 42 | |
| 43 | # Build Docker image with morphological features and dependency parsing |
| 44 | build-docker: |
| 45 | stage: build |
| 46 | image: docker:24.0.5 |
| 47 | services: |
| 48 | - docker:24.0.5-dind |
| 49 | variables: |
| 50 | DOCKER_TLS_CERTDIR: "/certs" |
| Marc Kupietz | 772a06d | 2025-10-30 11:40:35 +0100 | [diff] [blame^] | 51 | IMAGE_TAG: "${CI_COMMIT_TAG:-$CI_COMMIT_SHORT_SHA}" |
| Marc Kupietz | d96aa5a | 2025-10-26 16:09:23 +0100 | [diff] [blame] | 52 | before_script: |
| 53 | - docker info |
| Marc Kupietz | 772a06d | 2025-10-30 11:40:35 +0100 | [diff] [blame^] | 54 | - export IMAGE_NAME="conllu2spacy-${IMAGE_TAG}" |
| 55 | - echo "Building image with tag ${IMAGE_TAG}" |
| 56 | - echo "Image name will be ${IMAGE_NAME}" |
| Marc Kupietz | d96aa5a | 2025-10-26 16:09:23 +0100 | [diff] [blame] | 57 | script: |
| Marc Kupietz | 772a06d | 2025-10-30 11:40:35 +0100 | [diff] [blame^] | 58 | - docker build -t korap/conllu2spacy:${IMAGE_TAG} . 2>&1 | tail -20 |
| 59 | - echo "Testing Docker image with rei.test.conllu..." |
| 60 | - docker run --rm -i -v $(pwd):/data korap/conllu2spacy:${IMAGE_TAG} < /data/rei.test.conllu 2>&1 > /data/rei.test.docker.conllu | tail -20 |
| 61 | - test -s rei.test.docker.conllu || (echo "Docker output is empty!" && exit 1) |
| 62 | - (! grep -E '^0\s' rei.test.docker.conllu) || (echo "Docker test failed invalid output!" && exit 1) |
| 63 | - echo "Docker test passed, compressing output..." |
| 64 | - xz rei.test.docker.conllu |
| 65 | - ls -lh rei.test.docker.conllu.xz |
| 66 | - echo "Saving Docker image..." |
| 67 | - docker save korap/conllu2spacy:${IMAGE_TAG} | xz > ${IMAGE_NAME}.tar.xz |
| 68 | - ls -lh ${IMAGE_NAME}.tar.xz |
| Marc Kupietz | d96aa5a | 2025-10-26 16:09:23 +0100 | [diff] [blame] | 69 | artifacts: |
| 70 | paths: |
| 71 | - "*.tar.xz" |
| Marc Kupietz | 772a06d | 2025-10-30 11:40:35 +0100 | [diff] [blame^] | 72 | - "rei.test.docker.conllu.xz" |
| Marc Kupietz | d96aa5a | 2025-10-26 16:09:23 +0100 | [diff] [blame] | 73 | expire_in: 1 week |
| Marc Kupietz | 772a06d | 2025-10-30 11:40:35 +0100 | [diff] [blame^] | 74 | name: "docker-image-${IMAGE_TAG}" |
| Marc Kupietz | d96aa5a | 2025-10-26 16:09:23 +0100 | [diff] [blame] | 75 | rules: |
| 76 | - if: $CI_COMMIT_TAG |
| 77 | when: always |
| 78 | - when: manual |
| 79 | allow_failure: true |