Skip to content
Snippets Groups Projects
.gitlab-ci.yml 5.67 KiB
Newer Older
  • Learn to ignore specific revisions
  •   AWS_BUILD_SUBDIR: provider/notification-aws/build-aws
      AWS_TEST_SUBDIR: testing/notification-test-aws
    
      AWS_CHART_SUBDIR: devops/aws/chart
    
      AWS_SERVICE: notification
    
      AWS_SERVICE_GATEWAY: osdu-gateway
    
      AWS_ENVIRONMENT: dev
    
      AWS_DEPLOY_TARGET: TF
    
    Yunhua Koglin's avatar
    Yunhua Koglin committed
      AWS_EKS_DEPLOYMENT_NAME: os-notification
    
      AZURE_SERVICE: notification
      AZURE_BUILD_SUBDIR: provider/notification-azure
    
    Komal Makkar's avatar
    Komal Makkar committed
      AZURE_TEST_SUBDIR: testing/notification-test-azure
    
      AZURE_DEPLOYMENTS_SUBDIR: deployments/scripts/azure
    
    Smitha Manjunath's avatar
    Smitha Manjunath committed
      AZURE_COVERAGE_THRESHOLD: 80
    
    Anuj Gupta's avatar
    Anuj Gupta committed
      IBM_BUILD_SUBDIR: provider/notification-ibm
      IBM_INT_TEST_SUBDIR: testing/notification-test-ibm
    
    Manish Singh's avatar
    Manish Singh committed
      IBM_HELM_CONFIG_PATH: devops/ibm/ibm-notification-config
      IBM_HELM_DEPLOY_PATH: devops/ibm/ibm-notification-deploy
    
    Anuj Gupta's avatar
    Anuj Gupta committed
    
    
    David Diederich's avatar
    David Diederich committed
    include:
    
      - project: "osdu/platform/ci-cd-pipelines"
        file: "standard-setup.yml"
    
      - project: "osdu/platform/ci-cd-pipelines"
        file: "build/maven.yml"
    
      - project: "osdu/platform/ci-cd-pipelines"
    
        file: "scanners/fossa-maven.yml"
    
      - project: "osdu/platform/ci-cd-pipelines"
        file: "scanners/gitlab-ultimate.yml"
    
      - project: "osdu/platform/ci-cd-pipelines"
        file: "cloud-providers/azure.yml"
    
    
      - project: "osdu/platform/ci-cd-pipelines"
    
        file: "cloud-providers/gc-global.yml"
    
    
      - project: "osdu/platform/ci-cd-pipelines"
    
        file: "cloud-providers/ibm.yml"
    
      # aws
      - local: "devops/aws/pipeline/override-stages.yml"
    
      - local: "devops/gc/pipeline/override-stages.yml"
    
    
    .maven:
      image: maven:3.9.3-eclipse-temurin-17
      tags: ['osdu-medium']
      variables:
        MAVEN_REPO_PATH: "$CI_PROJECT_DIR/.m2/repository"
        MAVEN_CLI_OPTS: "--batch-mode --settings=$CI_PROJECT_DIR/.mvn/community-maven.settings.xml"
    
      cache:
        paths:
          - $MAVEN_REPO_PATH
    
      artifacts:
        paths:
          - ./**/target/*.jar
          - ./**/maven-*-output.txt
        when: always
        expire_in: 2 days
    
      before_script:
        - | # Check for the presence of a maven wrapper script
          apt-get update && apt-get install -y python3
          if [ -e "$CI_PROJECT_DIR/mvnw" ]; then
            export MAVEN_BINARY="$CI_PROJECT_DIR/mvnw"
            unset MAVEN_CONFIG
            mkdir -pv .mvn/wrapper
          else
            export MAVEN_BINARY="mvn"
          fi
        - export MAVEN="$MAVEN_BINARY $MAVEN_CLI_OPTS -Dmaven.repo.local=$MAVEN_REPO_PATH"
        - echo $MAVEN_BINARY
        - echo $MAVEN_CLI_OPTS
        - echo $MAVEN_REPO_PATH
        - echo $MAVEN
        - mkdir -pv $MAVEN_REPO_PATH
        - export ALL_MAVEN_BUILD_DIRS_Z=$(mktemp)
        - python3 --version
    
        # This scans for all pom.xml files that aren't listed as a child pom (as
        # determine by the presence of a <parent> tag).
        - |
          (python3 | sort -z > $ALL_MAVEN_BUILD_DIRS_Z) <<EOF
          from xml.dom.minidom import parse
          import os
          import sys
    
          allPomFiles = set()
          submoduleFiles = set()
    
          for root, dirnames, filenames in os.walk(os.environ['CI_PROJECT_DIR']):
              if 'pom.xml' in filenames:
                  pomFile = os.path.join(root, 'pom.xml')
                  allPomFiles.add(pomFile)
    
                  dom = parse(pomFile)
                  for modules in dom.getElementsByTagName('modules'):
                      for module in modules.getElementsByTagName('module'):
                          submoduleFiles.add(os.path.join(root, module.firstChild.nodeValue, "pom.xml"))
    
          for pomFile in allPomFiles:
              if pomFile not in submoduleFiles:
                  dir = os.path.dirname(pomFile)
                  sys.stdout.write(dir + '\0')
          EOF
        - xargs -0rn 1 echo < $ALL_MAVEN_BUILD_DIRS_Z
    
        # This creates a script for running maven, capturing output to a file.
        # - First argument is the directory to build from
        # - Second argument is the name to use for the logfile
        # - The remaining arguments are the maven command to run
        - export MAVEN_BUILD=$(tempfile -m 755 -p build -s .sh)
        - echo "#!/bin/bash" > $MAVEN_BUILD
        - |
          cat >> $MAVEN_BUILD <<EOF
          id=maven_build_\$(echo "\$@" | sha1sum | head -c 7)
          cd "\$1"; shift
          outputFile="\$1"; shift
    
          echo "********************************************************************************"
          echo -e "\e[0Ksection_start:\$(date +%s):\${id}\r\e[0K\e[1m\$(pwd)\e[0m"
          echo -e "\e[32;1m\$MAVEN" "\$@" "\e[0m"
    
          if \$MAVEN "\$@" > "\$outputFile" 2>&1; then
              tail -n 25 "\$outputFile";
              echo -e "\e[36m**** Showing the last 25 lines of the passed build (above). See Job artifacts for full log details *****\e[0m";
              echo -e "\e[0Ksection_end:\$(date +%s):\${id}\r\e[0K"
          else
              tail -n 200 "\$outputFile";
              echo -e "\e[31m**** Showing the last 200 lines of the failed build (above). See Job artifacts for full log details *****\e[0m";
              echo -e "\e[0Ksection_end:\$(date +%s):\${id}\r\e[0K"
              exit 255;
          fi
          EOF
    
        # This creates a script for applying the $MAVEN_BUILD script to all build directories
        - export MAVEN_FOREACH=$(tempfile -m 755 -p fr-ec -s .sh)
        - echo "#!/bin/sh" > $MAVEN_FOREACH
        - echo 'xargs -0rI {} $MAVEN_BUILD {} "$@" < $ALL_MAVEN_BUILD_DIRS_Z' >> $MAVEN_FOREACH
    
    gemnasium-maven-dependency_scanning:
      variables:
        DS_JAVA_VERSION: 17
    
    azure_containerize:
      variables:
        AZURE_CONTAINERIZE_REPOSITORY: "-b jdk-17 https://gitlab-ci-token:${CI_JOB_TOKEN}@community.opengroup.org/osdu/platform/deployment-and-operations/base-containers-azure/service-base-image"
    
    azure_test:
      image: community.opengroup.org:5555/osdu/platform/deployment-and-operations/base-containers-azure/azure-maven17:v0.0.1
    
    aws-test-java:
    
      image: $CI_REGISTRY/osdu/platform/deployment-and-operations/base-containers-aws/aws-maven/aws-maven:v2.1
    
    
    
    fossa-analyze:
      image: $CI_REGISTRY/divido/fossa-with-cache:v0.9-jdk17
    fossa-check-notice:
      image: $CI_REGISTRY/divido/fossa-with-cache:v0.9-jdk17