| 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" |
| |