blob: 25b28c33ee983ea91c4604d48aaaf6c5bf1431f5 [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
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
43build-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
81deploy-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 Kupietz03ba3012025-12-11 16:14:05 +010096 - 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 Kupietzd1531de2026-03-21 14:35:32 +0100102build:
Marc Kupietz03ba3012025-12-11 16:14:05 +0100103 stage: build
Marc Kupietz89bbfb32024-02-03 18:29:48 +0100104 script:
Marc Kupietzd1531de2026-03-21 14:35:32 +0100105 - npm ci
106 - mkdir -p bin/linux bin/macos bin/win
Marc Kupietz89bbfb32024-02-03 18:29:48 +0100107 - npm run pkg-linux
108 - npm run pkg-macos
Marc Kupietzd1531de2026-03-21 14:35:32 +0100109 - npm run pkg-win
Marc Kupietz89bbfb32024-02-03 18:29:48 +0100110 artifacts:
Marc Kupietzd1531de2026-03-21 14:35:32 +0100111 name: "conllu2cmc-${CI_COMMIT_REF_SLUG}"
Marc Kupietz89bbfb32024-02-03 18:29:48 +0100112 paths:
Marc Kupietzd1531de2026-03-21 14:35:32 +0100113 - bin/linux/conllu2cmc
114 - bin/macos/conllu2cmc
115 - bin/win/conllu2cmc.exe
116 expire_in: 4 weeks