Newer
Older
variables:
# to avoid "fatal: git fetch-pack: expected shallow list"
GIT_STRATEGY: clone
build:
stage: build
tags:
- docker
only:
refs:
script:
- mvn clean package -DskipTests -DfinalName=vospace
artifacts:
paths:
- target/vospace.jar
expire_in: 7 days
pre_test:
stage: generate-test-env
tags:
- shell
script:
- docker login -u "${CI_REGISTRY_USER}" -p "${CI_REGISTRY_PASSWORD}" "${CI_REGISTRY}"
- docker build -t "${CI_REGISTRY_IMAGE}/vospace-test-env" -f src/test/resources/testing-Dockerfile .
- docker push "${CI_REGISTRY_IMAGE}/vospace-test-env"
only:
refs:
changes:
- src/test/resources/testing-Dockerfile
test:
stage: test
tags:
- docker
image: "${CI_REGISTRY_IMAGE}/vospace-test-env"
variables:
FILE_CATALOG_REPO_URL: "https://gitlab-ci-token:${CI_JOB_TOKEN}@www.ict.inaf.it/gitlab/vospace/vospace-file-catalog.git"
script:
- git clone ${FILE_CATALOG_REPO_URL}
- mvn clean test -Dinit_database_scripts_path=../../vospace-file-catalog
- awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print "coverage=" 100*covered/instructions }' target/site/jacoco/jacoco.csv
coverage: '/coverage=\d+\.\d+/'
only:
dockerize:
stage: dockerize
tags:
- shell
only:
refs:
script:
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
- docker build -t $CI_REGISTRY_IMAGE .
- docker push $CI_REGISTRY_IMAGE
upload_jar:
stage: publish
tags:
- shell
only:
- master
script:
- 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file target/vospace.jar "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/vospace-rest/latest/vospace-rest.jar"'