Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.37 KiB
Newer Older
Sonia Zorba's avatar
Sonia Zorba committed
stages:
  - test
  - dockerize
Sonia Zorba's avatar
Sonia Zorba committed
  - publish
Sonia Zorba's avatar
Sonia Zorba committed

Sonia Zorba's avatar
Sonia Zorba committed
variables:
  # to avoid "fatal: git fetch-pack: expected shallow list"
  GIT_STRATEGY: clone

Sonia Zorba's avatar
Sonia Zorba committed
test:
  stage: test
  tags:
    - docker
  image: "git.ia2.inaf.it:5050/vospace/vospace-rest/vospace-test-env"
Sonia Zorba's avatar
Sonia Zorba committed
  variables:
    FILE_CATALOG_REPO_URL: "https://gitlab-ci-token:${CI_JOB_TOKEN}@www.ict.inaf.it/gitlab/vospace/vospace-file-catalog.git"
Sonia Zorba's avatar
Sonia Zorba committed
  script:
Sonia Zorba's avatar
Sonia Zorba committed
    - git clone ${FILE_CATALOG_REPO_URL}
Sonia Zorba's avatar
Sonia Zorba committed
    - mvn clean test -Dinit_database_scripts_path=../../vospace-file-catalog
Sonia Zorba's avatar
Sonia Zorba committed
    - awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print "coverage=" 100*covered/instructions }' target/site/jacoco/jacoco.csv
  coverage: '/coverage=\d+\.\d+/'
  only:
    - master

deploy:
  stage: dockerize
  tags:
    - shell
  only:
    - master
  script:
    - docker login -u "${CI_REGISTRY_USER}" -p "${CI_REGISTRY_PASSWORD}" "${CI_REGISTRY}"
    - docker build -t "${CI_REGISTRY_IMAGE}" .
    - docker push "${CI_REGISTRY_IMAGE}"
Sonia Zorba's avatar
Sonia Zorba committed

upload_jar:
  stage: publish
  tags:
    - shell
  only:
    - master
  script:
    # extract jar from Docker image
    - docker run --rm --entrypoint cat "${CI_REGISTRY_IMAGE}" /vospace-file-service.jar > vospace-file-service.jar
    - 'curl --header "JOB-TOKEN: $CI_JOB_TOKEN" --upload-file vospace-file-service.jar "${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/packages/generic/vospace-file-service/latest/vospace-file-service.jar"'