| Marc Kupietz | d1531de | 2026-03-21 14:35:32 +0100 | [diff] [blame^] | 1 | default: |
| 2 | image: node:22 |
| 3 | cache: |
| 4 | key: |
| 5 | files: |
| 6 | - package-lock.json |
| 7 | paths: |
| 8 | - node_modules/ |
| Marc Kupietz | 89bbfb3 | 2024-02-03 18:29:48 +0100 | [diff] [blame] | 9 | |
| 10 | stages: |
| 11 | - test |
| Marc Kupietz | 03ba301 | 2025-12-11 16:14:05 +0100 | [diff] [blame] | 12 | - build |
| 13 | - deploy |
| Marc Kupietz | 89bbfb3 | 2024-02-03 18:29:48 +0100 | [diff] [blame] | 14 | |
| Marc Kupietz | 03ba301 | 2025-12-11 16:14:05 +0100 | [diff] [blame] | 15 | # Run npm tests |
| Marc Kupietz | 89bbfb3 | 2024-02-03 18:29:48 +0100 | [diff] [blame] | 16 | test: |
| 17 | stage: test |
| 18 | script: |
| Marc Kupietz | d1531de | 2026-03-21 14:35:32 +0100 | [diff] [blame^] | 19 | - npm ci |
| Marc Kupietz | 89bbfb3 | 2024-02-03 18:29:48 +0100 | [diff] [blame] | 20 | - npm test |
| 21 | |
| Marc Kupietz | 03ba301 | 2025-12-11 16:14:05 +0100 | [diff] [blame] | 22 | # Test Docker image build |
| 23 | test-docker-image: |
| 24 | image: docker:latest |
| 25 | stage: test |
| 26 | variables: |
| 27 | FF_NETWORK_PER_BUILD: "true" |
| 28 | services: |
| 29 | - name: docker:dind |
| 30 | alias: docker |
| 31 | command: ["--dns=127.0.0.11", "--dns=8.8.8.8"] |
| 32 | before_script: |
| 33 | - apk update |
| 34 | - apk add --no-cache bash |
| 35 | script: |
| 36 | - docker build -t korap/conllu-cmc:test . |
| 37 | - echo "Testing help display..." |
| 38 | - docker run --rm korap/conllu-cmc:test --help |
| 39 | - echo "Testing basic annotation..." |
| 40 | - echo -e "1\tš\t_\t_\t_\t_\t_\t_\t_\t_" | docker run --rm -i korap/conllu-cmc:test |
| 41 | |
| 42 | # Build Docker image |
| 43 | build-docker-image: |
| 44 | image: docker:latest |
| 45 | stage: build |
| 46 | variables: |
| 47 | FF_NETWORK_PER_BUILD: "true" |
| 48 | services: |
| 49 | - name: docker:dind |
| 50 | alias: docker |
| 51 | command: ["--dns=127.0.0.11", "--dns=8.8.8.8"] |
| 52 | rules: |
| 53 | - if: $CI_COMMIT_TAG =~ /.+/ |
| 54 | variables: |
| 55 | VID: $CI_COMMIT_TAG |
| 56 | - when: manual |
| 57 | variables: |
| 58 | VID_ALT: $CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA |
| 59 | VID: snapshot |
| 60 | cache: |
| 61 | key: conllu-cmc |
| 62 | paths: |
| 63 | - cache/ |
| 64 | before_script: |
| 65 | - mkdir -p cache |
| 66 | - apk update |
| 67 | - apk add --no-cache bash xz |
| 68 | script: |
| 69 | - docker build -t korap/conllu-cmc:latest . |
| 70 | - docker tag korap/conllu-cmc:latest korap/conllu-cmc:$VID |
| 71 | - | |
| 72 | if [ -n "$VID_ALT" ]; then |
| 73 | docker tag korap/conllu-cmc:latest korap/conllu-cmc:$VID_ALT |
| 74 | fi |
| 75 | - docker save korap/conllu-cmc | xz -T0 > conllu-cmc.xz |
| 76 | artifacts: |
| 77 | paths: |
| 78 | - conllu-cmc.xz |
| 79 | |
| 80 | # Deploy to Docker Hub |
| 81 | deploy-to-docker-hub: |
| 82 | image: docker:latest |
| 83 | stage: deploy |
| 84 | variables: |
| 85 | FF_NETWORK_PER_BUILD: "true" |
| 86 | services: |
| 87 | - name: docker:dind |
| 88 | alias: docker |
| 89 | command: ["--dns=127.0.0.11", "--dns=8.8.8.8"] |
| 90 | rules: |
| 91 | - if: $CI_COMMIT_TAG =~ /.+/ |
| 92 | - when: manual |
| 93 | dependencies: |
| 94 | - build-docker-image |
| 95 | before_script: |
| Marc Kupietz | 03ba301 | 2025-12-11 16:14:05 +0100 | [diff] [blame] | 96 | - echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USER" --password-stdin |
| 97 | script: |
| 98 | - xz -d -c conllu-cmc.xz | docker load |
| 99 | - docker push --all-tags korap/conllu-cmc |
| 100 | |
| 101 | # Build standalone binaries |
| Marc Kupietz | d1531de | 2026-03-21 14:35:32 +0100 | [diff] [blame^] | 102 | build: |
| Marc Kupietz | 03ba301 | 2025-12-11 16:14:05 +0100 | [diff] [blame] | 103 | stage: build |
| Marc Kupietz | 89bbfb3 | 2024-02-03 18:29:48 +0100 | [diff] [blame] | 104 | script: |
| Marc Kupietz | d1531de | 2026-03-21 14:35:32 +0100 | [diff] [blame^] | 105 | - npm ci |
| 106 | - mkdir -p bin/linux bin/macos bin/win |
| Marc Kupietz | 89bbfb3 | 2024-02-03 18:29:48 +0100 | [diff] [blame] | 107 | - npm run pkg-linux |
| 108 | - npm run pkg-macos |
| Marc Kupietz | d1531de | 2026-03-21 14:35:32 +0100 | [diff] [blame^] | 109 | - npm run pkg-win |
| Marc Kupietz | 89bbfb3 | 2024-02-03 18:29:48 +0100 | [diff] [blame] | 110 | artifacts: |
| Marc Kupietz | d1531de | 2026-03-21 14:35:32 +0100 | [diff] [blame^] | 111 | name: "conllu2cmc-${CI_COMMIT_REF_SLUG}" |
| Marc Kupietz | 89bbfb3 | 2024-02-03 18:29:48 +0100 | [diff] [blame] | 112 | paths: |
| Marc Kupietz | d1531de | 2026-03-21 14:35:32 +0100 | [diff] [blame^] | 113 | - bin/linux/conllu2cmc |
| 114 | - bin/macos/conllu2cmc |
| 115 | - bin/win/conllu2cmc.exe |
| 116 | expire_in: 4 weeks |