Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.3 KiB
Newer Older
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