diff --git a/cloud-providers/aws-global.yml b/cloud-providers/aws-global.yml index 70a32d11d6ebba253c2ef4ec0baa98a8725daf45..d454aac283fe18e75f73d302dca47b192a32128d 100644 --- a/cloud-providers/aws-global.yml +++ b/cloud-providers/aws-global.yml @@ -24,8 +24,7 @@ aws-containerize: - .aws_common_variables - .aws_variables stage: containerize - needs: ['compile-and-unit-test'] - script: + script: - | if [ -z $AWS_BUILDER_DOCKERFILE_PATH ] && [ -z $AWS_RUNTIME_DOCKERFILE_PATH ]; then echo Building BUILD_DIR/Dockerfile container @@ -45,9 +44,11 @@ aws-containerize: - docker tag $LOCAL_IMAGE_TAG $AWS_IMAGE_TAG_BASE:latest - docker push $AWS_IMAGE_TAG_BASE:$CI_COMMIT_SHA - docker push $AWS_IMAGE_TAG_BASE:latest - only: - variables: - - $AWS == '1' + rules: + - if: '$CSP_BUILD_ENABLED == "true" && $AWS == "1"' + needs: [ "aws-compile-and-unit-test" ] + - if: '$AWS == "1"' + needs: [ "compile-and-unit-test" ] aws-update-helm: extends: diff --git a/cloud-providers/aws-maven.yml b/cloud-providers/aws-maven.yml index d311dfb887327654a0a81abe7a60b01a9e68cb0c..87ab2c89c52fde83f54be4584cd4ab80d758212e 100644 --- a/cloud-providers/aws-maven.yml +++ b/cloud-providers/aws-maven.yml @@ -1,3 +1,21 @@ +aws-compile-and-unit-test: + extends: + - .maven + - .skipForTriggeringMergeRequests + stage: csp-build + needs: ['compile-and-unit-test'] + script: + - mvn clean package -f pom.xml -P aws + after_script: + - find . -path '*/target/*.jar' -o -name 'maven-*-output.txt' | xargs du -hsc + rules: + - if: $CI_COMMIT_REF_NAME !~ /^trusted-/ && $CI_MERGE_REQUEST_ID + when: never + - if: $CI_COMMIT_REF_NAME =~ /^trusted-/ && $CSP_BUILD_ENABLED == "true" && $AWS == "1" + when: always + - if: ($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_REF_NAME == "main") && $CSP_BUILD_ENABLED == "true" && $AWS == "1" + when: always + aws-test-java: extends: - .maven diff --git a/cloud-providers/azure-function.yml b/cloud-providers/azure-function.yml index 9dfefe1d383c3ab46662bd298911aa91c2dd68f4..30e86f7df4fbf8c598fbd4b8bdb1ad4e570e2516 100644 --- a/cloud-providers/azure-function.yml +++ b/cloud-providers/azure-function.yml @@ -11,7 +11,6 @@ azure_containerize: tags: ["osdu-medium"] image: danielscholl/azure-build-image stage: containerize - needs: ["compile-and-unit-test"] variables: SHA_IMAGE: ${CI_PROJECT_NAME}-${CI_COMMIT_REF_SLUG}:${CI_COMMIT_SHA} LATEST_IMAGE: ${CI_PROJECT_NAME}-${CI_COMMIT_REF_SLUG}:latest @@ -30,9 +29,11 @@ azure_containerize: - docker push ${AZURE_REGISTRY}.azurecr.io/$SHA_IMAGE - docker tag $CI_REGISTRY_IMAGE/$SHA_IMAGE ${AZURE_REGISTRY}.azurecr.io/$LATEST_IMAGE - docker push ${AZURE_REGISTRY}.azurecr.io/$LATEST_IMAGE - only: - variables: - - $AZURE == '1' + rules: + - if: '$CSP_BUILD_ENABLED == "true" && $AZURE == "1"' + needs: [ "azure-compile-and-unit-test" ] + - if: '$AZURE == "1"' + needs: [ "compile-and-unit-test" ] azure_deploy: image: danielscholl/azure-build-image diff --git a/cloud-providers/azure.yml b/cloud-providers/azure.yml index eb1856955fa9251fffa78dd3176c2b84ae723ac6..7378fe54672368910b9378f0393f0f9269a727e7 100644 --- a/cloud-providers/azure.yml +++ b/cloud-providers/azure.yml @@ -171,12 +171,28 @@ include: # JOBS # -------------------------------------------------------------------------------- +azure-compile-and-unit-test: + extends: + - .maven + - .skipForTriggeringMergeRequests + stage: csp-build + needs: ['compile-and-unit-test'] + script: + - mvn clean package -f pom.xml -P azure + after_script: + - find . -path '*/target/*.jar' -o -name 'maven-*-output.txt' | xargs du -hsc + rules: + - if: $CI_COMMIT_REF_NAME !~ /^trusted-/ && $CI_MERGE_REQUEST_ID + when: never + - if: $CI_COMMIT_REF_NAME =~ /^trusted-/ && $CSP_BUILD_ENABLED == "true" && $AZURE == "1" + when: always + - if: ($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_REF_NAME == "main") && $CSP_BUILD_ENABLED == "true" && $AZURE == "1" + when: always azure_containerize: tags: ["osdu-medium"] image: danielscholl/azure-build-image stage: containerize - needs: ["compile-and-unit-test"] environment: $DEPLOY_ENVIRONMENT_AZURE variables: SHA_IMAGE: ${CI_PROJECT_NAME}-${CI_COMMIT_REF_SLUG}:${CI_COMMIT_SHA} @@ -223,9 +239,14 @@ azure_containerize: docker tag $CI_REGISTRY_IMAGE/$SHA_IMAGE ${AZURE_REGISTRY}.azurecr.io/$RELEASE_IMAGE docker push ${AZURE_REGISTRY}.azurecr.io/$RELEASE_IMAGE fi - only: - variables: - - $AZURE == '1' + rules: + - if: '$CSP_BUILD_ENABLED == "true"' + needs: [ "azure-compile-and-unit-test" ] + - if: '$CSP_BUILD_ENABLED == ""' + needs: [ "compile-and-unit-test" ] + - if: '$AZURE == "1"' + when: on_success + allow_failure: true # Helm build and push to glab ACR/helm azure_containerize_helm: @@ -480,7 +501,6 @@ azure-acceptance-test: azure_code_coverage: stage: coverage environment: $DEPLOY_ENVIRONMENT_AZURE - needs: ["compile-and-unit-test"] retry: 1 extends: - .maven @@ -497,9 +517,13 @@ azure_code_coverage: dotenv: azure_code_coverage.env paths: - $AZURE_BUILD_SUBDIR/target/site/ - only: - variables: - - $AZURE == '1' && $AZURE_SKIP_DEPLOY != 'true' && $AZURE_SKIP_COVERAGE != 'true' + rules: + - if: '$CSP_BUILD_ENABLED == "true"' + needs: [ "azure-compile-and-unit-test" ] + - if: '$CSP_BUILD_ENABLED == ""' + needs: [ "compile-and-unit-test" ] + - if: '$AZURE == "1" && $AZURE_SKIP_DEPLOY != "true" && $AZURE_SKIP_COVERAGE != "true"' + when: on_success azure_test_py: image: $CI_REGISTRY/danielscholl/azure-maven/azure-maven:v1.0 diff --git a/cloud-providers/gc-bootstrap.yml b/cloud-providers/gc-bootstrap.yml index 557d910ad39c1ad581b427b24b85507d56907ea4..9f11befe93f55f5a4079176a815c32a277c27c4d 100644 --- a/cloud-providers/gc-bootstrap.yml +++ b/cloud-providers/gc-bootstrap.yml @@ -1,7 +1,6 @@ gc-containerize-bootstrap-gitlab: stage: containerize image: docker:19.03.15 - needs: ["compile-and-unit-test"] tags: ["osdu-small"] services: - docker:20.10.7-dind @@ -11,15 +10,16 @@ gc-containerize-bootstrap-gitlab: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker push $CI_REGISTRY_IMAGE/$IMAGE_BOOTSTRAP_NAME rules: + - if: '$CSP_BUILD_ENABLED == "true" && $GC == "1" && $GC_ENABLE_BOOTSTRAP == "true"' + needs: ["gc-compile-and-unit-test"] - if: "$GC == '1' && $GC_ENABLE_BOOTSTRAP == 'true'" - when: on_success + needs: ["compile-and-unit-test"] gc-containerize-bootstrap-gcr: environment: name: GC_Baremetal stage: containerize image: gcr.io/google.com/cloudsdktool/cloud-sdk:alpine - needs: ["compile-and-unit-test"] id_tokens: GITLAB_OIDC_TOKEN: aud: https://iam.googleapis.com/projects/${GC_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GC_POOL_ID}/providers/${GC_PROVIDER_ID} @@ -33,5 +33,7 @@ gc-containerize-bootstrap-gcr: - docker build -t $GC_GCR_REGISTRY/$GC_SERVICE/$IMAGE_BOOTSTRAP_NAME:$CI_COMMIT_TAG $BUILD_ARGS -f $BUILD_BOOTSTRAP_PATH . - docker push $GC_GCR_REGISTRY/$GC_SERVICE/$IMAGE_BOOTSTRAP_NAME:$CI_COMMIT_TAG rules: + - if: '$CSP_BUILD_ENABLED == "true" && $GC == "1" && $CI_COMMIT_TAG && $GC_ENABLE_BOOTSTRAP == "true"' + needs: ["gc-compile-and-unit-test"] - if: '$GC == "1" && $CI_COMMIT_TAG && $GC_ENABLE_BOOTSTRAP == "true"' - when: on_success + needs: ["compile-and-unit-test"] \ No newline at end of file diff --git a/cloud-providers/gc-containerize.yml b/cloud-providers/gc-containerize.yml index e382cc00235656b876ff37c5e840840f1f40d2cd..f19de669069117656fd3b1369865169f6b9a5e09 100644 --- a/cloud-providers/gc-containerize.yml +++ b/cloud-providers/gc-containerize.yml @@ -6,7 +6,6 @@ gc-containerize-gitlab: environment: name: Google_Cloud stage: containerize - needs: ["compile-and-unit-test"] tags: ["osdu-small"] image: docker:19.03 cache: {} @@ -18,14 +17,15 @@ gc-containerize-gitlab: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker push $CI_REGISTRY_IMAGE/$IMAGE_NAME rules: - - if: "$GC == '1'" - when: on_success + - if: '$CSP_BUILD_ENABLED == "true" && $GC == "1"' + needs: ["gc-compile-and-unit-test"] + - if: '$GC == "1"' + needs: ["compile-and-unit-test"] gc-containerize-gcr: environment: name: GC_Baremetal stage: containerize - needs: ["compile-and-unit-test"] id_tokens: GITLAB_OIDC_TOKEN: aud: https://iam.googleapis.com/projects/${GC_PROJECT_NUMBER}/locations/global/workloadIdentityPools/${GC_POOL_ID}/providers/${GC_PROVIDER_ID} @@ -43,5 +43,7 @@ gc-containerize-gcr: - docker build -t $GC_GCR_REGISTRY/$GC_SERVICE/$IMAGE_NAME:$CI_COMMIT_TAG -f $BUILD_PATH $BUILD_ARGS . - docker push $GC_GCR_REGISTRY/$GC_SERVICE/$IMAGE_NAME:$CI_COMMIT_TAG rules: + - if: '$CSP_BUILD_ENABLED == "true" && $GC == "1" && $CI_COMMIT_TAG' + needs: ["gc-compile-and-unit-test"] - if: '$GC == "1" && $CI_COMMIT_TAG' - when: on_success + needs: ["compile-and-unit-test"] diff --git a/cloud-providers/gc-global.yml b/cloud-providers/gc-global.yml index 33c6d1fac4463a262d443c4d4ba5bb20a5cd0bba..1587b4d92b04d7f5de396aea27ff270d64b7d18e 100644 --- a/cloud-providers/gc-global.yml +++ b/cloud-providers/gc-global.yml @@ -9,4 +9,5 @@ include: - local: "cloud-providers/gc-preship-variables.yml" - local: "cloud-providers/gc-preship-gke.yml" - local: "cloud-providers/gc-helm.yml" + - local: "cloud-providers/gc-maven-compile.yml" - local: "cloud-providers/gc-global-variables.yml" diff --git a/cloud-providers/gc-mappers.yml b/cloud-providers/gc-mappers.yml index 1d6b265ad620da5295df4a0321c5632134be5905..7a67fe4ef56d8e2d7035980064a1885030f57d2f 100644 --- a/cloud-providers/gc-mappers.yml +++ b/cloud-providers/gc-mappers.yml @@ -13,7 +13,6 @@ gc-test: - .maven stage: integration tags: ["osdu-small"] - needs: ["compile-and-unit-test"] retry: 1 script: - export GOOGLE_APPLICATION_CREDENTIALS=$GC_MAPPERS_INTEGRATION_TESTER @@ -30,6 +29,10 @@ gc-test: - test-results.log expire_in: 1 days rules: + - if: '$CSP_BUILD_ENABLED == "true"' + needs: ["gc-compile-and-unit-test"] + - if: '$CSP_BUILD_ENABLED == ""' + needs: ["compile-and-unit-test"] - if: "$CI_COMMIT_BRANCH =~ /^release/" when: never - if: "$CI_COMMIT_TAG" diff --git a/cloud-providers/gc-maven-compile.yml b/cloud-providers/gc-maven-compile.yml new file mode 100644 index 0000000000000000000000000000000000000000..aaa46209488724f03a6100c8390023c1b24c4ab8 --- /dev/null +++ b/cloud-providers/gc-maven-compile.yml @@ -0,0 +1,17 @@ +gc-compile-and-unit-test: + extends: + - .maven + - .skipForTriggeringMergeRequests + stage: csp-build + needs: ['compile-and-unit-test'] + script: + - mvn clean package -f pom.xml -P gc + after_script: + - find . -path '*/target/*.jar' -o -name 'maven-*-output.txt' | xargs du -hsc + rules: + - if: $CI_COMMIT_REF_NAME !~ /^trusted-/ && $CI_MERGE_REQUEST_ID + when: never + - if: $CI_COMMIT_REF_NAME =~ /^trusted-/ && $CSP_BUILD_ENABLED == "true" && $GC == "1" + when: always + - if: ($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_REF_NAME == "main") && $CSP_BUILD_ENABLED == "true" && $GC == "1" + when: always \ No newline at end of file diff --git a/cloud-providers/ibm-deploy-only.yml b/cloud-providers/ibm-deploy-only.yml index d2080d4bcf7698898238601cfef851ea1d71aea5..b339848ab2025ec0dd8bae758fdbd9d1f6333bf9 100644 --- a/cloud-providers/ibm-deploy-only.yml +++ b/cloud-providers/ibm-deploy-only.yml @@ -66,7 +66,6 @@ ibm-helm-charts-release: ibm-deploy: extends: .ibm stage: deploy - needs: ['compile-and-unit-test'] retry: 1 script: - cp -v ${IBM_BUILD_SUBDIR}/target/*-spring-boot.jar "$IBM_DEPLOY_DIR" @@ -77,9 +76,12 @@ ibm-deploy: - oc start-build $CI_PROJECT_NAME --commit=$CI_COMMIT_SHA --follow - oc get service $CI_PROJECT_NAME 2> /dev/null || oc new-app $CI_PROJECT_NAME rules: + - if: $CSP_BUILD_ENABLED == "true" && $IBM_BUILD_SUBDIR && $IBM == '1' && $IBM_OPENSHIFT_URL && $IBM_OPENSHIFT_TOKEN + needs: [ "ibm-compile-and-unit-test" ] + - if: $IBM_BUILD_SUBDIR && $IBM == '1' && $IBM_OPENSHIFT_URL && $IBM_OPENSHIFT_TOKEN + needs: [ "compile-and-unit-test" ] - if: $IBM_SKIP_DEPLOY == 'true' when: never - - if: $IBM_BUILD_SUBDIR && $IBM == '1' && $IBM_OPENSHIFT_URL && $IBM_OPENSHIFT_TOKEN ibm-deploy-devpri: extends: .ibm diff --git a/cloud-providers/ibm.yml b/cloud-providers/ibm.yml index 7ef32cf6651c6a457d6b6050b75ede48e2f7d5cd..07a50fbc4e428f7801506028e1dda30318fcfaee 100644 --- a/cloud-providers/ibm.yml +++ b/cloud-providers/ibm.yml @@ -66,7 +66,6 @@ ibm-helm-charts-release: ibm-deploy: extends: .ibm stage: deploy - needs: ['compile-and-unit-test'] retry: 1 script: - cp -v ${IBM_BUILD_SUBDIR}/target/*-spring-boot.jar "$IBM_DEPLOY_DIR" @@ -76,9 +75,12 @@ ibm-deploy: - oc start-build $CI_PROJECT_NAME --commit=$CI_COMMIT_SHA --follow - oc get service $CI_PROJECT_NAME 2> /dev/null || oc new-app $CI_PROJECT_NAME rules: + - if: $CSP_BUILD_ENABLED == 'true' && $IBM_BUILD_SUBDIR && $IBM == '1' && $IBM_OPENSHIFT_URL && $IBM_OPENSHIFT_TOKEN + needs: [ "ibm-compile-and-unit-test" ] + - if: $IBM_BUILD_SUBDIR && $IBM == '1' && $IBM_OPENSHIFT_URL && $IBM_OPENSHIFT_TOKEN + needs: [ "compile-and-unit-test" ] - if: $IBM_SKIP_DEPLOY == 'true' when: never - - if: $IBM_BUILD_SUBDIR && $IBM == '1' && $IBM_OPENSHIFT_URL && $IBM_OPENSHIFT_TOKEN ibm-deploy-devpri: extends: .ibm @@ -232,6 +234,23 @@ ibm-deploy-devpri: SCHEMA_HOST: ${IBM_SCHEMA_HOST}/api/schema-service/v1 WELL_DELIVERY_URL: $IBM_ENTITY_URL +ibm-compile-and-unit-test: + extends: + - .maven + - .skipForTriggeringMergeRequests + stage: csp-build + needs: ['compile-and-unit-test'] + script: + - mvn clean package -f pom.xml -P ibm + after_script: + - find . -path '*/target/*.jar' -o -name 'maven-*-output.txt' | xargs du -hsc + rules: + - if: $CI_COMMIT_REF_NAME !~ /^trusted-/ && $CI_MERGE_REQUEST_ID + when: never + - if: $CI_COMMIT_REF_NAME =~ /^trusted-/ && $CSP_BUILD_ENABLED == "true" && $IBM == "1" + when: always + - if: ($CI_COMMIT_REF_NAME == "master" || $CI_COMMIT_REF_NAME == "main") && $CSP_BUILD_ENABLED == "true" && $IBM == "1" + when: always ibm-test: stage: integration diff --git a/standard-setup.yml b/standard-setup.yml index fe901fac5987cf23d586e0910a602b2fc6c91048..0920e39f0925840943b8de9d82143d50b583c53c 100644 --- a/standard-setup.yml +++ b/standard-setup.yml @@ -1,6 +1,7 @@ stages: - review - build + - csp-build - coverage - containerize - scan @@ -34,11 +35,11 @@ workflow: - if: $CI_MERGE_REQUEST_LABELS =~ /no-detached-pipeline/ when: never - # If the pipelines are from release or tag commits then set azure deployment env variable value + # If the pipelines are from release or tag commits then set azure deployment env variable value - if: $CI_COMMIT_BRANCH =~ /^release/ || $CI_COMMIT_TAG variables: DEPLOY_ENVIRONMENT_AZURE: "AZURE_STAGE" - + # In all other cases, run the pipeline normally - when: always