blob: 6f15decd109285e23fbc880af098c2b4551758f5 [file] [log] [blame]
Marc Kupietzd96aa5a2025-10-26 16:09:23 +01001stages:
2 - test
3 - build
4
Rebecca Wilmafbcd7f2022-11-09 16:46:48 +01005default:
Marc Kupietzb1c30b22024-02-05 07:03:51 +01006 image: python:3.12-bookworm
Rebecca Wilmafbcd7f2022-11-09 16:46:48 +01007
8variables:
9 PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
10
11cache:
12 paths:
13 - .cache/pip
14 - venv/
15
16before_script:
17 - python -m venv venv
18 - source venv/bin/activate
19 - export PYTHONPATH=PYTHONPATH:.
Marc Kupietz772a06d2025-10-30 11:40:35 +010020 - 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 Wilmafbcd7f2022-11-09 16:46:48 +010023
24test-job:
25 stage: test
Marc Kupietzfc34de62024-02-01 12:04:27 +010026 artifacts:
27 paths:
Marc Kupietz772a06d2025-10-30 11:40:35 +010028 - rei.test.spacy.conllu.xz
29 - logs/
30 when: always
Rebecca Wilmafbcd7f2022-11-09 16:46:48 +010031 script:
Marc Kupietz772a06d2025-10-30 11:40:35 +010032 - 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 Kupietzd96aa5a2025-10-26 16:09:23 +010042
43# Build Docker image with morphological features and dependency parsing
44build-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 Kupietz772a06d2025-10-30 11:40:35 +010051 IMAGE_TAG: "${CI_COMMIT_TAG:-$CI_COMMIT_SHORT_SHA}"
Marc Kupietzd96aa5a2025-10-26 16:09:23 +010052 before_script:
53 - docker info
Marc Kupietz772a06d2025-10-30 11:40:35 +010054 - export IMAGE_NAME="conllu2spacy-${IMAGE_TAG}"
55 - echo "Building image with tag ${IMAGE_TAG}"
56 - echo "Image name will be ${IMAGE_NAME}"
Marc Kupietzd96aa5a2025-10-26 16:09:23 +010057 script:
Marc Kupietz772a06d2025-10-30 11:40:35 +010058 - 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 Kupietzd96aa5a2025-10-26 16:09:23 +010069 artifacts:
70 paths:
71 - "*.tar.xz"
Marc Kupietz772a06d2025-10-30 11:40:35 +010072 - "rei.test.docker.conllu.xz"
Marc Kupietzd96aa5a2025-10-26 16:09:23 +010073 expire_in: 1 week
Marc Kupietz772a06d2025-10-30 11:40:35 +010074 name: "docker-image-${IMAGE_TAG}"
Marc Kupietzd96aa5a2025-10-26 16:09:23 +010075 rules:
76 - if: $CI_COMMIT_TAG
77 when: always
78 - when: manual
79 allow_failure: true