From 26f54f344c0315a7add00ad94fe01ea0181b3e5d Mon Sep 17 00:00:00 2001 From: Marc Burnie <mburnie@amazon.com> Date: Sat, 22 Feb 2025 05:19:25 +0000 Subject: [PATCH] Create Release Branch for version 0.28 --- .gitlab-ci.yml | 332 ++++++++++++------------ devops/aws/pipeline/override-stages.yml | 16 +- 2 files changed, 178 insertions(+), 170 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 30825df0e..12ed29892 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,191 +1,197 @@ variables: - 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 - AWS_EKS_DEPLOYMENT_NAME: os-notification - - AZURE_SERVICE: notification - AZURE_BUILD_SUBDIR: provider/notification-azure - AZURE_TEST_SUBDIR: testing/notification-test-azure - AZURE_DEPLOYMENTS_SUBDIR: deployments/scripts/azure - AZURE_COVERAGE_THRESHOLD: 80 - - IBM_BUILD_SUBDIR: provider/notification-ibm - IBM_INT_TEST_SUBDIR: testing/notification-test-ibm - IBM_HELM_CONFIG_PATH: devops/ibm/ibm-notification-config - IBM_HELM_DEPLOY_PATH: devops/ibm/ibm-notification-deploy - - ACCEPTANCE_TEST_DIR: "notification-acceptance-test" + 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 + AWS_EKS_DEPLOYMENT_NAME: os-notification + + AZURE_SERVICE: notification + AZURE_BUILD_SUBDIR: provider/notification-azure + AZURE_TEST_SUBDIR: testing/notification-test-azure + AZURE_DEPLOYMENTS_SUBDIR: deployments/scripts/azure + AZURE_COVERAGE_THRESHOLD: 80 + + IBM_BUILD_SUBDIR: provider/notification-ibm + IBM_INT_TEST_SUBDIR: testing/notification-test-ibm + IBM_HELM_CONFIG_PATH: devops/ibm/ibm-notification-config + IBM_HELM_DEPLOY_PATH: devops/ibm/ibm-notification-deploy + + ACCEPTANCE_TEST_DIR: "notification-acceptance-test" include: - - project: "osdu/platform/ci-cd-pipelines" - file: "standard-setup.yml" + - project: "osdu/platform/ci-cd-pipelines" + file: "standard-setup.yml" + ref: release/0.28 - - project: "osdu/platform/ci-cd-pipelines" - file: "build/maven.yml" + - project: "osdu/platform/ci-cd-pipelines" + file: "build/maven.yml" + ref: release/0.28 - - project: "osdu/platform/ci-cd-pipelines" - file: "scanners/fossa-maven.yml" + - project: "osdu/platform/ci-cd-pipelines" + file: "scanners/fossa-maven.yml" + ref: release/0.28 - - project: "osdu/platform/ci-cd-pipelines" - file: "scanners/gitlab-ultimate.yml" + - project: "osdu/platform/ci-cd-pipelines" + file: "scanners/gitlab-ultimate.yml" + ref: release/0.28 - - project: "osdu/platform/ci-cd-pipelines" - file: "cloud-providers/azure.yml" + - project: "osdu/platform/ci-cd-pipelines" + file: "cloud-providers/azure.yml" + ref: release/0.28 - - project: "osdu/platform/ci-cd-pipelines" - file: "cloud-providers/gc-global.yml" + - project: "osdu/platform/ci-cd-pipelines" + file: "cloud-providers/gc-global.yml" + ref: release/0.28 - - project: "osdu/platform/ci-cd-pipelines" - file: "cloud-providers/ibm.yml" + - project: "osdu/platform/ci-cd-pipelines" + file: "cloud-providers/ibm.yml" + ref: release/0.28 - - project: "osdu/platform/ci-cd-pipelines" - file: "cloud-providers/core-global.yml" + - project: "osdu/platform/ci-cd-pipelines" + file: "cloud-providers/core-global.yml" + ref: release/0.28 - # aws - - local: "devops/aws/pipeline/override-stages.yml" + # aws + - local: "devops/aws/pipeline/override-stages.yml" - - local: "devops/gc/pipeline/override-stages.yml" + - local: "devops/gc/pipeline/override-stages.yml" - - local: "/publish.yml" - - - local: "devops/core-plus/pipeline/override-stages.yml" + - local: "/publish.yml" + - local: "devops/core-plus/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 - + 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 download_plugins: - image: maven:3.8.3-openjdk-17-slim - stage: build + image: maven:3.8.3-openjdk-17-slim + stage: build + variables: + OQM_PACKAGE_REGISRTY_URL: "https://community.opengroup.org/api/v4/projects/1450/packages/maven" + OQM_VERSION: "0.25.0-rc1" + APD_PACKAGE_REGISTRY_URL: "https://community.opengroup.org/api/v4/projects/1445/packages/maven" + APD_VERSION: "0.27.0-rc1" + artifacts: + paths: + - ./tmp/*.jar + when: always + expire_in: 1 days + script: + - mvn dependency:copy -DrepoUrl=$OQM_PACKAGE_REGISRTY_URL -Dartifact="org.opengroup.osdu:os-oqm-rabbitmq:$OQM_VERSION:jar:plugin" -Dtransitive=false -DoutputDirectory="./tmp" + - mvn dependency:copy -DrepoUrl=$APD_PACKAGE_REGISTRY_URL -Dartifact="org.opengroup.osdu:apd-openid:$APD_VERSION:jar:plugin" -Dtransitive=false -DoutputDirectory="./tmp" + only: variables: - OQM_PACKAGE_REGISRTY_URL: "https://community.opengroup.org/api/v4/projects/1450/packages/maven" - OQM_VERSION: "0.25.0-rc1" - APD_PACKAGE_REGISTRY_URL: "https://community.opengroup.org/api/v4/projects/1445/packages/maven" - APD_VERSION: "0.27.0-rc1" - artifacts: - paths: - - ./tmp/*.jar - when: always - expire_in: 1 days - script: - - mvn dependency:copy -DrepoUrl=$OQM_PACKAGE_REGISRTY_URL -Dartifact="org.opengroup.osdu:os-oqm-rabbitmq:$OQM_VERSION:jar:plugin" -Dtransitive=false -DoutputDirectory="./tmp" - - mvn dependency:copy -DrepoUrl=$APD_PACKAGE_REGISTRY_URL -Dartifact="org.opengroup.osdu:apd-openid:$APD_VERSION:jar:plugin" -Dtransitive=false -DoutputDirectory="./tmp" - only: - variables: - - $CORE == '1' + - $CORE == '1' gemnasium-maven-dependency_scanning: - variables: - DS_JAVA_VERSION: 17 + 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" + 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 + image: community.opengroup.org:5555/osdu/platform/deployment-and-operations/base-containers-azure/azure-maven17:v0.0.1 fossa-analyze: - image: $CI_REGISTRY/divido/fossa-with-cache:v0.9-jdk17 + image: $CI_REGISTRY/divido/fossa-with-cache:v0.9-jdk17 fossa-check-notice: - image: $CI_REGISTRY/divido/fossa-with-cache:v0.9-jdk17 + image: $CI_REGISTRY/divido/fossa-with-cache:v0.9-jdk17 diff --git a/devops/aws/pipeline/override-stages.yml b/devops/aws/pipeline/override-stages.yml index 6b6ef6755..b999c36a3 100644 --- a/devops/aws/pipeline/override-stages.yml +++ b/devops/aws/pipeline/override-stages.yml @@ -15,12 +15,16 @@ include: - project: "osdu/platform/ci-cd-pipelines" file: "cloud-providers/aws-global.yml" + ref: release/0.28 - project: "osdu/platform/ci-cd-pipelines" file: "cloud-providers/aws-global-variables.yml" + ref: release/0.28 - project: "osdu/platform/ci-cd-pipelines" file: "cloud-providers/aws-global.yml" + ref: release/0.28 - project: "osdu/platform/ci-cd-pipelines" file: "cloud-providers/aws-maven.yml" + ref: release/0.28 aws-containerize: extends: @@ -28,7 +32,7 @@ aws-containerize: - .aws_common_variables - .aws_variables stage: containerize - needs: ['compile-and-unit-test'] + needs: [ 'compile-and-unit-test' ] script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - $(aws ecr get-login --no-include-email --region $AWS_ECR_REGION) @@ -51,7 +55,6 @@ aws-containerize: variables: - $AWS == '1' - aws-test-java: image: $CI_REGISTRY/osdu/platform/deployment-and-operations/base-containers-aws/aws-maven/aws-maven:v2.1 extends: @@ -60,12 +63,12 @@ aws-test-java: - .aws_common_variables - .aws_variables stage: integration - needs: [{ job: 'aws-update-tf', optional: true }, { job: 'aws-update-helm', optional: true }, { job: 'aws-update-eks', optional: true }] + needs: [ { job: 'aws-update-tf', optional: true }, { job: 'aws-update-helm', optional: true }, { job: 'aws-update-eks', optional: true } ] retry: 1 before_script: - - !reference [.maven, before_script] - - !reference [.aws, before_script] - - !reference [.aws_variables, before_script] + - !reference [ .maven, before_script ] + - !reference [ .aws, before_script ] + - !reference [ .aws_variables, before_script ] script: - export KUBECONFIG=/tmp/kubeconfig-${RANDOM}.yaml - aws eks update-kubeconfig --region $AWS_REGION --name $EKS_CLUSTER_NAME --role-arn $EKS_CLUSTER_MGMT_ROLE @@ -90,4 +93,3 @@ aws-test-java: paths: - $INTEGRATION_TEST_DIR expire_in: 2 days - -- GitLab