Skip to content
.gitlab-ci.yml 2.07 KiB
Newer Older
Sonia Zorba's avatar
Sonia Zorba committed
stages:
  - build
  - test
  - deploy

Sonia Zorba's avatar
Sonia Zorba committed
.gms_client:
Sonia Zorba's avatar
Sonia Zorba committed
  tags:
    - docker
Sonia Zorba's avatar
Sonia Zorba committed
  rules:
    - if: '$CI_COMMIT_BRANCH != "master"'
      when: never
    - changes:
        - gms-client/gms-client/*

build_gms_client:
  extends: .gms_client
  stage: build
Sonia Zorba's avatar
Sonia Zorba committed
  script:
    - cd gms-client/gms-client
    - mvn clean package -DskipTests -DfinalName=gms-client
  artifacts:
    paths:
      - gms-client/gms-client/target/gms-client.jar
      - gms-client/gms-client/pom.xml
    expire_in: 7 days

test_gms_client:
Sonia Zorba's avatar
Sonia Zorba committed
  extends: .gms_client
  stage: test
  script:
    - cd gms-client/gms-client
    - mvn clean test

test_gms:
Sonia Zorba's avatar
Sonia Zorba committed
  stage: test
  tags:
    - docker
Sonia Zorba's avatar
Sonia Zorba committed
  image: git.ia2.inaf.it:5050/ia2/ia2-devops/maven-otj-pg-embedded
Sonia Zorba's avatar
Sonia Zorba committed
  script:
Sonia Zorba's avatar
Sonia Zorba committed
    - cd gms
Sonia Zorba's avatar
Sonia Zorba committed
    - mvn clean test
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+/'
  rules:
    - if: '$CI_COMMIT_BRANCH != "master"'
      when: never
    - changes:
        - gms/*
Sonia Zorba's avatar
Sonia Zorba committed

deploy_gms_client:
Sonia Zorba's avatar
Sonia Zorba committed
  extends: .gms_client
Sonia Zorba's avatar
Sonia Zorba committed
  stage: deploy
  script:
    - mvn deploy:deploy-file
        -Dfile=gms-client/gms-client/target/gms-client.jar
        -DrepositoryId=ia2.snapshots
        -DpomFile=gms-client/gms-client/pom.xml
        -Durl=${IA2_MVN_REPO_SNAPSHOTS}
Sonia Zorba's avatar
Sonia Zorba committed

dockerize_db:
  stage: deploy
  tags:
    - shell
  script:
    - docker login -u "${CI_REGISTRY_USER}" -p "${CI_REGISTRY_PASSWORD}" "${CI_REGISTRY}"
    - docker build -t "${CI_REGISTRY_IMAGE}/database" -f database/Dockerfile .
    - docker push "${CI_REGISTRY_IMAGE}/database"
  rules:
    - if: '$CI_COMMIT_BRANCH != "master"'
      when: never
    - changes:
        - database/*
        - gms/src/main/resources/sql/*

dockerize_gms:
  stage: deploy
  tags:
    - shell
  script:
    - docker login -u "${CI_REGISTRY_USER}" -p "${CI_REGISTRY_PASSWORD}" "${CI_REGISTRY}"
    - docker build -t "${CI_REGISTRY_IMAGE}" -f gms/Dockerfile .
    - docker push "${CI_REGISTRY_IMAGE}"
  rules:
    - if: '$CI_COMMIT_BRANCH != "master"'
      when: never
    - changes:
        - gms/*
        - gms-ui/*