blob: 3184e37390aecbe0097c98c4975afd3b75c3797c [file] [log] [blame]
image: maven:3.6-jdk-8
#cache:
# paths:
# - $HOME/.m2/repository
variables:
# This will supress any download for dependencies and plugins or upload messages which would clutter the console log.
# `showDateTime` will show the passed time in milliseconds. You need to specify `--batch-mode` to make this work.
MAVEN_OPTS: "-Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Dorg.slf4j.simpleLogger.showDateTime=true -Djava.awt.headless=true"
# As of Maven 3.3.0 instead of this you may define these options in `.mvn/maven.config` so the same config is used
# when running from the command line.
# `installAtEnd` and `deployAtEnd`are only effective with recent version of the corresponding plugins.
MAVEN_CLI_OPTS: "--batch-mode --errors --fail-at-end --show-version -DinstallAtEnd=true -DdeployAtEnd=true -Dmaven.repo.local=/tmp/.m2/repository"
SKIP_DEPENDENCIES: "false"
AUTO_DEPLOY_TO_PRODUCTION: "false"
MAVEN_LOCAL_DISTRIBUTION_REPOSITORY_DIR: "/tmp/maven_repository"
MAVEN_LOCAL_DISTRIBUTION_REPOSITORY_PRJ_DIR: "${MAVEN_LOCAL_DISTRIBUTION_REPOSITORY_DIR}/CHESS"
stages:
- build_sde
- build_est
- test
- deploy
#- documentation
#- release
sde_build_test_job:
only:
refs:
- master
variables:
- $SKIP_DEPENDENCIES == "false"
stage: build_sde
environment: staging
script:
- "curl -X POST -F token=d1ce830095dc9201851e948eb160f4 -F ref=master --form variables[SKIP_DEPENDENCIES]=true https://gitlab.fbk.eu/api/v4/projects/393/trigger/pipeline"
est_build_test_job:
only:
refs:
- master
variables:
- $SKIP_DEPENDENCIES == "false"
stage: build_est
environment: staging
script:
- "curl -X POST -F token=951497a03a4073902aa28ab8d9c2d3 -F ref=master --form variables[SKIP_DEPENDENCIES]=true https://gitlab.fbk.eu/api/v4/projects/1159/trigger/pipeline"
maven_build_and_test:
only:
refs:
- master
variables:
MAVEN_LOCAL_DISTRIBUTION_PRJ_REPOSITORY_URL: "file://$MAVEN_LOCAL_DISTRIBUTION_REPOSITORY_PRJ_DIR"
stage: test
environment: staging
script:
#- mkdir -p MAVEN_LOCAL_DISTRIBUTION_REPOSITORY_DIR
#- "export DISPLAY=:0.0; cd org.polarsys.chess.parent; mvn $MAVEN_CLI_OPTS -P Neon-Java8,DevelopmentUpdateSite -Ddistribution.repository=$MAVEN_LOCAL_DISTRIBUTION_PRJ_REPOSITORY_URL clean deploy"
- "export DISPLAY=:0.0; cd org.polarsys.chess.parent; mvn $MAVEN_CLI_OPTS -P Neon-Java8,DevelopmentUpdateSite clean install"
.deploy_to_production_update_site: &deploy_to_production_update_site
dependencies:
- maven_build_and_test
variables:
GIT_STRATEGY: none
UPDATE_SITE_MOUNT_DIR: "/tmp/www_ci"
UPDATE_SITE_PROD_TARGET_DIR: "html/tools/aida_chess"
REPOSITORY_TO_COPY: "org.polarsys.chess.parent/releng/eu.fbk.tools.aida.chess.repository/target/repository"
MAVEN_REPOSITORY_DIR: "html/tools/maven_repository"
stage: deploy
environment: staging
script:
- echo "Deploy to production update site"
- mkdir -p $UPDATE_SITE_MOUNT_DIR
- sshfs -o nonempty -o umask=0777 es@es-static.fbk.eu:/ $UPDATE_SITE_MOUNT_DIR
- mkdir -p $UPDATE_SITE_MOUNT_DIR/$UPDATE_SITE_PROD_TARGET_DIR
- cp -r ${REPOSITORY_TO_COPY}/* $UPDATE_SITE_MOUNT_DIR/$UPDATE_SITE_PROD_TARGET_DIR
- chmod -R 0777 $UPDATE_SITE_MOUNT_DIR/$UPDATE_SITE_PROD_TARGET_DIR
#- echo "Deploy to remote maven repository"
#- cp -r ${MAVEN_LOCAL_DISTRIBUTION_REPOSITORY_DIR}/* $UPDATE_SITE_MOUNT_DIR/$MAVEN_REPOSITORY_DIR
#- chmod -R 0777 $UPDATE_SITE_MOUNT_DIR/$MAVEN_REPOSITORY_DIR
- fusermount -uz $UPDATE_SITE_MOUNT_DIR
only:
refs:
- master
automatic_deploy_to_production_update_site:
<< : *deploy_to_production_update_site
only:
variables:
- $AUTO_DEPLOY_TO_PRODUCTION == "true"
manual_to_production_update_site:
<< : *deploy_to_production_update_site
when: manual
only:
variables:
- $AUTO_DEPLOY_TO_PRODUCTION == "false"