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"
    