blob: 498626e908c6447d98a62cfa00419cfb70ede4db [file] [log] [blame]
Marc Kupietzd1531de2026-03-21 14:35:32 +01001default:
2 image: node:22
3 cache:
4 key:
5 files:
6 - package-lock.json
7 paths:
8 - node_modules/
Marc Kupietz89bbfb32024-02-03 18:29:48 +01009
10stages:
11 - test
Marc Kupietz03ba3012025-12-11 16:14:05 +010012 - build
13 - deploy
Marc Kupietz89bbfb32024-02-03 18:29:48 +010014
Marc Kupietz03ba3012025-12-11 16:14:05 +010015# Run npm tests
Marc Kupietz89bbfb32024-02-03 18:29:48 +010016test:
17 stage: test
18 script:
Marc Kupietzd1531de2026-03-21 14:35:32 +010019 - npm ci
Marc Kupietz89bbfb32024-02-03 18:29:48 +010020 - npm test
21
Marc Kupietz03ba3012025-12-11 16:14:05 +010022# Test Docker image build
23test-docker-image:
24 image: docker:latest
25 stage: test
Marc Kupietz03ba3012025-12-11 16:14:05 +010026 services:
Marc Kupietzb378e672026-07-23 11:49:01 +020027 - docker:dind
Marc Kupietz03ba3012025-12-11 16:14:05 +010028 before_script:
29 - apk update
30 - apk add --no-cache bash
31 script:
32 - docker build -t korap/conllu-cmc:test .
33 - echo "Testing help display..."
34 - docker run --rm korap/conllu-cmc:test --help
35 - echo "Testing basic annotation..."
36 - echo -e "1\tšŸ˜€\t_\t_\t_\t_\t_\t_\t_\t_" | docker run --rm -i korap/conllu-cmc:test
37
38# Build Docker image
39build-docker-image:
40 image: docker:latest
41 stage: build
Marc Kupietz03ba3012025-12-11 16:14:05 +010042 services:
Marc Kupietzb378e672026-07-23 11:49:01 +020043 - docker:dind
Marc Kupietz03ba3012025-12-11 16:14:05 +010044 rules:
45 - if: $CI_COMMIT_TAG =~ /.+/
46 variables:
47 VID: $CI_COMMIT_TAG
48 - when: manual
49 variables:
50 VID_ALT: $CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA
51 VID: snapshot
52 cache:
53 key: conllu-cmc
54 paths:
55 - cache/
56 before_script:
57 - mkdir -p cache
58 - apk update
59 - apk add --no-cache bash xz
60 script:
61 - docker build -t korap/conllu-cmc:latest .
62 - docker tag korap/conllu-cmc:latest korap/conllu-cmc:$VID
63 - |
64 if [ -n "$VID_ALT" ]; then
65 docker tag korap/conllu-cmc:latest korap/conllu-cmc:$VID_ALT
66 fi
67 - docker save korap/conllu-cmc | xz -T0 > conllu-cmc.xz
68 artifacts:
69 paths:
70 - conllu-cmc.xz
71
72# Deploy to Docker Hub
73deploy-to-docker-hub:
74 image: docker:latest
75 stage: deploy
Marc Kupietz03ba3012025-12-11 16:14:05 +010076 services:
Marc Kupietzb378e672026-07-23 11:49:01 +020077 - docker:dind
Marc Kupietz03ba3012025-12-11 16:14:05 +010078 rules:
79 - if: $CI_COMMIT_TAG =~ /.+/
80 - when: manual
81 dependencies:
82 - build-docker-image
83 before_script:
Marc Kupietz03ba3012025-12-11 16:14:05 +010084 - echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USER" --password-stdin
85 script:
86 - xz -d -c conllu-cmc.xz | docker load
87 - docker push --all-tags korap/conllu-cmc
88
89# Build standalone binaries
Marc Kupietzd1531de2026-03-21 14:35:32 +010090build:
Marc Kupietz03ba3012025-12-11 16:14:05 +010091 stage: build
Marc Kupietz89bbfb32024-02-03 18:29:48 +010092 script:
Marc Kupietzd1531de2026-03-21 14:35:32 +010093 - npm ci
94 - mkdir -p bin/linux bin/macos bin/win
Marc Kupietz89bbfb32024-02-03 18:29:48 +010095 - npm run pkg-linux
96 - npm run pkg-macos
Marc Kupietzd1531de2026-03-21 14:35:32 +010097 - npm run pkg-win
Marc Kupietz89bbfb32024-02-03 18:29:48 +010098 artifacts:
Marc Kupietz202a36d2026-04-12 14:58:13 +020099 name: "cmc-tagger-${CI_COMMIT_REF_SLUG}"
Marc Kupietz89bbfb32024-02-03 18:29:48 +0100100 paths:
Marc Kupietz202a36d2026-04-12 14:58:13 +0200101 - bin/linux/cmc-tagger
102 - bin/macos/cmc-tagger
103 - bin/win/cmc-tagger.exe
Marc Kupietzd1531de2026-03-21 14:35:32 +0100104 expire_in: 4 weeks