.gitlab-ci.yml 1.3 KB
Newer Older
Daniel Gerhardt's avatar
Daniel Gerhardt committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
variables:
  MIRROR_REPO: git@github.com:thm-projects/arsnova-backend.git
  WAR_FILE: target/arsnova-backend-*.war

stages:
  - analysis
  - test
  - build
  - deploy
  - synchronization

cache:
  paths:
    - .m2/

sync_mirror:
  stage: synchronization
  when: always
  except:
    - production
    - staging
  allow_failure: true
  script:
    - git clone --bare $CI_BUILD_REPO mirror.git
    - cd mirror.git
    - git update-ref -d refs/tags/production
    - git update-ref -d refs/tags/staging
    - git push --mirror $MIRROR_REPO

sonar:
  stage: analysis
  only:
    - master
  tags:
    - maven
  allow_failure: true
  script:
    - mvn sonar:sonar

checkstyle:
  stage: analysis
  tags:
    - maven
  script:
    - mvn checkstyle:checkstyle

test:
  stage: test
  tags:
    - maven
  script:
    - mvn test

package:
  stage: build
  tags:
    - maven
  artifacts:
    paths:
      - $WAR_FILE
  script:
    - mvn package -DskipTests

tomcat_production:
  stage: deploy
  only:
    - production
  script:
    - curl --upload-file $WAR_FILE https://$PROD_TOMCAT_USER:$PROD_TOMCAT_PASSWORD@$PROD_TOMCAT_HOST/manager/deploy?path=%2Fapi

tomcat_development:
  stage: deploy
  only:
    - staging
  script:
    - curl --upload-file $WAR_FILE https://$DEV_TOMCAT_USER:$DEV_TOMCAT_PASSWORD@$DEV_TOMCAT_HOST/manager/deploy?path=%2Fapi