blob: e59adec1964bb189cb99217d6893443759ac28c1 [file] [log] [blame]
Marc Kupietz89bbfb32024-02-03 18:29:48 +01001image: node:latest
2
3stages:
4 - test
Marc Kupietz03ba3012025-12-11 16:14:05 +01005 - build
6 - deploy
Marc Kupietz89bbfb32024-02-03 18:29:48 +01007
8cache:
9 paths:
10 - node_modules/
11
Marc Kupietz03ba3012025-12-11 16:14:05 +010012# Run npm tests
Marc Kupietz89bbfb32024-02-03 18:29:48 +010013test:
14 stage: test
Marc Kupietz03ba3012025-12-11 16:14:05 +010015 before_script:
16 - npm install
Marc Kupietz89bbfb32024-02-03 18:29:48 +010017 script:
18 - npm test
19
Marc Kupietz03ba3012025-12-11 16:14:05 +010020# Test Docker image build
21test-docker-image:
22 image: docker:latest
23 stage: test
24 variables:
25 FF_NETWORK_PER_BUILD: "true"
26 services:
27 - name: docker:dind
28 alias: docker
29 command: ["--dns=127.0.0.11", "--dns=8.8.8.8"]
30 before_script:
31 - apk update
32 - apk add --no-cache bash
33 script:
34 - docker build -t korap/conllu-cmc:test .
35 - echo "Testing help display..."
36 - docker run --rm korap/conllu-cmc:test --help
37 - echo "Testing basic annotation..."
38 - echo -e "1\tšŸ˜€\t_\t_\t_\t_\t_\t_\t_\t_" | docker run --rm -i korap/conllu-cmc:test
39
40# Build Docker image
41build-docker-image:
42 image: docker:latest
43 stage: build
44 variables:
45 FF_NETWORK_PER_BUILD: "true"
46 services:
47 - name: docker:dind
48 alias: docker
49 command: ["--dns=127.0.0.11", "--dns=8.8.8.8"]
50 rules:
51 - if: $CI_COMMIT_TAG =~ /.+/
52 variables:
53 VID: $CI_COMMIT_TAG
54 - when: manual
55 variables:
56 VID_ALT: $CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA
57 VID: snapshot
58 cache:
59 key: conllu-cmc
60 paths:
61 - cache/
62 before_script:
63 - mkdir -p cache
64 - apk update
65 - apk add --no-cache bash xz
66 script:
67 - docker build -t korap/conllu-cmc:latest .
68 - docker tag korap/conllu-cmc:latest korap/conllu-cmc:$VID
69 - |
70 if [ -n "$VID_ALT" ]; then
71 docker tag korap/conllu-cmc:latest korap/conllu-cmc:$VID_ALT
72 fi
73 - docker save korap/conllu-cmc | xz -T0 > conllu-cmc.xz
74 artifacts:
75 paths:
76 - conllu-cmc.xz
77
78# Deploy to Docker Hub
79deploy-to-docker-hub:
80 image: docker:latest
81 stage: deploy
82 variables:
83 FF_NETWORK_PER_BUILD: "true"
84 services:
85 - name: docker:dind
86 alias: docker
87 command: ["--dns=127.0.0.11", "--dns=8.8.8.8"]
88 rules:
89 - if: $CI_COMMIT_TAG =~ /.+/
90 - when: manual
91 dependencies:
92 - build-docker-image
93 before_script:
94 - echo "Checking Docker Hub credentials..."
95 - test -n "$DOCKER_HUB_USER" || (echo "ERROR: DOCKER_HUB_USER is not set" && exit 1)
96 - test -n "$DOCKER_HUB_PASSWORD" || (echo "ERROR: DOCKER_HUB_PASSWORD is not set" && exit 1)
97 - echo "Logging in as user: $DOCKER_HUB_USER"
98 - echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USER" --password-stdin
99 script:
100 - xz -d -c conllu-cmc.xz | docker load
101 - docker push --all-tags korap/conllu-cmc
102
103# Build standalone binaries
Marc Kupietz89bbfb32024-02-03 18:29:48 +0100104package:
Marc Kupietz03ba3012025-12-11 16:14:05 +0100105 stage: build
106 before_script:
107 - npm install
Marc Kupietz89bbfb32024-02-03 18:29:48 +0100108 script:
109 - npm run pkg-linux
110 - npm run pkg-macos
111 artifacts:
112 paths:
113 - bin/