Dockerize and rename to conllu-cmc
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 63792b4..e59adec 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -2,22 +2,109 @@
stages:
- test
- - package
+ - build
+ - deploy
cache:
paths:
- node_modules/
-before_script:
- - npm install
-
+# Run npm tests
test:
stage: test
+ before_script:
+ - npm install
script:
- npm test
+# Test Docker image build
+test-docker-image:
+ image: docker:latest
+ stage: test
+ variables:
+ FF_NETWORK_PER_BUILD: "true"
+ services:
+ - name: docker:dind
+ alias: docker
+ command: ["--dns=127.0.0.11", "--dns=8.8.8.8"]
+ before_script:
+ - apk update
+ - apk add --no-cache bash
+ script:
+ - docker build -t korap/conllu-cmc:test .
+ - echo "Testing help display..."
+ - docker run --rm korap/conllu-cmc:test --help
+ - echo "Testing basic annotation..."
+ - echo -e "1\tš\t_\t_\t_\t_\t_\t_\t_\t_" | docker run --rm -i korap/conllu-cmc:test
+
+# Build Docker image
+build-docker-image:
+ image: docker:latest
+ stage: build
+ variables:
+ FF_NETWORK_PER_BUILD: "true"
+ services:
+ - name: docker:dind
+ alias: docker
+ command: ["--dns=127.0.0.11", "--dns=8.8.8.8"]
+ rules:
+ - if: $CI_COMMIT_TAG =~ /.+/
+ variables:
+ VID: $CI_COMMIT_TAG
+ - when: manual
+ variables:
+ VID_ALT: $CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA
+ VID: snapshot
+ cache:
+ key: conllu-cmc
+ paths:
+ - cache/
+ before_script:
+ - mkdir -p cache
+ - apk update
+ - apk add --no-cache bash xz
+ script:
+ - docker build -t korap/conllu-cmc:latest .
+ - docker tag korap/conllu-cmc:latest korap/conllu-cmc:$VID
+ - |
+ if [ -n "$VID_ALT" ]; then
+ docker tag korap/conllu-cmc:latest korap/conllu-cmc:$VID_ALT
+ fi
+ - docker save korap/conllu-cmc | xz -T0 > conllu-cmc.xz
+ artifacts:
+ paths:
+ - conllu-cmc.xz
+
+# Deploy to Docker Hub
+deploy-to-docker-hub:
+ image: docker:latest
+ stage: deploy
+ variables:
+ FF_NETWORK_PER_BUILD: "true"
+ services:
+ - name: docker:dind
+ alias: docker
+ command: ["--dns=127.0.0.11", "--dns=8.8.8.8"]
+ rules:
+ - if: $CI_COMMIT_TAG =~ /.+/
+ - when: manual
+ dependencies:
+ - build-docker-image
+ before_script:
+ - echo "Checking Docker Hub credentials..."
+ - test -n "$DOCKER_HUB_USER" || (echo "ERROR: DOCKER_HUB_USER is not set" && exit 1)
+ - test -n "$DOCKER_HUB_PASSWORD" || (echo "ERROR: DOCKER_HUB_PASSWORD is not set" && exit 1)
+ - echo "Logging in as user: $DOCKER_HUB_USER"
+ - echo "$DOCKER_HUB_PASSWORD" | docker login -u "$DOCKER_HUB_USER" --password-stdin
+ script:
+ - xz -d -c conllu-cmc.xz | docker load
+ - docker push --all-tags korap/conllu-cmc
+
+# Build standalone binaries
package:
- stage: package
+ stage: build
+ before_script:
+ - npm install
script:
- npm run pkg-linux
- npm run pkg-macos