Skip to content
Snippets Groups Projects
.gitlab-ci.yml 3.19 KiB
Newer Older
Radek Ošlejšek's avatar
Radek Ošlejšek committed
image: maven:latest
Radek Ošlejšek's avatar
Radek Ošlejšek committed
variables: 
  LANG: C.UTF-8
  LC_ALL: C.UTF-8
  PROJECT_ARTIFACT_ID: FIDENTIS-Analyst-app
  DEPLOYMENT_INFO_VERSION_FILE: VERSION.txt
Radek Ošlejšek's avatar
Radek Ošlejšek committed
  # FTP_* variables are defined in the CI condiguration of the gitlab.
Radek Ošlejšek's avatar
Radek Ošlejšek committed
    - test
    - document
Radek Ošlejšek's avatar
Radek Ošlejšek committed
    - publish
  stage: build
  script:
    - mvn clean install -B -DskipTests -Dcheckstyle.fail=false
Radek Ošlejšek's avatar
Radek Ošlejšek committed
  tags:
    - shared-fi
  rules:
    - if: '$CI_COMMIT_BRANCH'
Radek Ošlejšek's avatar
Radek Ošlejšek committed
  artifacts:
Radek Ošlejšek's avatar
Radek Ošlejšek committed
    paths:
    - application/target/$PROJECT_ARTIFACT_ID-*.zip
Radek Ošlejšek's avatar
Radek Ošlejšek committed
    expire_in: 1 hour
    when: on_success
Radek Ošlejšek's avatar
Radek Ošlejšek committed
test:
  stage: test
    - mvn test -B -Dcheckstyle.fail=false
#    - if: '$CI_COMMIT_BRANCH == "master"'
#      changes:
#        - VERSION.txt
#      when: never
    - if: '$CI_COMMIT_BRANCH'
Radek Ošlejšek's avatar
Radek Ošlejšek committed
# generate documentation when commiting to master and the VERSION.txt file has changed
Radek Ošlejšek's avatar
Radek Ošlejšek committed
document:
  stage: document
  script:
Radek Ošlejšek's avatar
Radek Ošlejšek committed
    - mvn -Dauthor=false -Dcheckstyle.fail=false -DadditionalJOption=-Xdoclint:none javadoc:javadoc
Radek Ošlejšek's avatar
Radek Ošlejšek committed
    - mvn -Dauthor=false -Dcheckstyle.fail=false -DadditionalJOption=-Xdoclint:none javadoc:aggregate
Radek Ošlejšek's avatar
Radek Ošlejšek committed
  tags:
    - shared-fi
Radek Ošlejšek's avatar
Radek Ošlejšek committed
  rules:
    - if: '$CI_COMMIT_BRANCH == "master"'
      changes:
        - VERSION.txt
    - if: '$CI_COMMIT_BRANCH'
      when: never
Radek Ošlejšek's avatar
Radek Ošlejšek committed
  artifacts:
    paths:
Radek Ošlejšek's avatar
Radek Ošlejšek committed
    - MeshModel/target/site/apidocs/
    - GUI/target/site/apidocs/
    - Comparison/target/site/apidocs/
Radek Ošlejšek's avatar
Radek Ošlejšek committed
    - target/site/apidocs/
    expire_in: 1 hour
    when: on_success

Radek Ošlejšek's avatar
Radek Ošlejšek committed
# publish release when commiting to master and the VERSION.txt file has changed
Radek Ošlejšek's avatar
Radek Ošlejšek committed
publish:
  stage: publish
Radek Ošlejšek's avatar
Radek Ošlejšek committed
  image: ubuntu:latest
Radek Ošlejšek's avatar
Radek Ošlejšek committed
  script:
    - export VERSION=$(grep -oP '^([^\s]*)' $DEPLOYMENT_INFO_VERSION_FILE)
Radek Ošlejšek's avatar
Radek Ošlejšek committed
    - apt-get update -qq && apt-get install -y -qq lftp
Radek Ošlejšek's avatar
Radek Ošlejšek committed
    #- lftp -c "set ftp:ssl-allow no; open -u $FTP_USERNAME,$FTP_PASSWORD $FTP_HOST; mirror -Rnev $CI_PROJECT_DIR/application/target ./$FTP_TARGET_DIR --ignore-time --parallel=10 --exclude-glob .git* --exclude .git/"
    - lftp -c "set ftp:ssl-allow yes; set ssl:verify-certificate false; open -u $FTP_USERNAME,$FTP_PASSWORD $FTP_HOST; cd $FTP_TARGET_DIR; mput -c $CI_PROJECT_DIR/application/target/$PROJECT_ARTIFACT_ID-$VERSION.zip; put -c $CI_PROJECT_DIR/application/target/$PROJECT_ARTIFACT_ID-$VERSION.zip -o $PROJECT_ARTIFACT_ID-LATEST.zip"
Radek Ošlejšek's avatar
Radek Ošlejšek committed
    - lftp -c "set ftp:ssl-allow no; open -u $FTP_USERNAME,$FTP_PASSWORD $FTP_HOST; mirror -Rnev $CI_PROJECT_DIR/target/site/apidocs ./$FTP_TARGET_DIR/apidocs --ignore-time --parallel=10"
Radek Ošlejšek's avatar
Radek Ošlejšek committed
    - lftp -c "set ftp:ssl-allow no; open -u $FTP_USERNAME,$FTP_PASSWORD $FTP_HOST; mirror -Rnev $CI_PROJECT_DIR/MeshModel/target/site/apidocs ./$FTP_TARGET_DIR/apidocs-MeshModel --ignore-time --parallel=10"
    - lftp -c "set ftp:ssl-allow no; open -u $FTP_USERNAME,$FTP_PASSWORD $FTP_HOST; mirror -Rnev $CI_PROJECT_DIR/GUI/target/site/apidocs ./$FTP_TARGET_DIR/apidocs-GUI --ignore-time --parallel=10"
    - lftp -c "set ftp:ssl-allow no; open -u $FTP_USERNAME,$FTP_PASSWORD $FTP_HOST; mirror -Rnev $CI_PROJECT_DIR/Comparison/target/site/apidocs ./$FTP_TARGET_DIR/apidocs-Comparison --ignore-time --parallel=10"
Radek Ošlejšek's avatar
Radek Ošlejšek committed
  tags:
    - shared-fi
Radek Ošlejšek's avatar
Radek Ošlejšek committed
  rules:
    - if: '$CI_COMMIT_BRANCH == "master"'
      changes:
        - VERSION.txt
    - if: '$CI_COMMIT_BRANCH'
      when: never