You might want to look at https://github.com/tomzo/gocd-yaml-config-plugin?tab=readme-ov-file#Validation
The problem you have there is probably the `script:` task. Doesn't confirm to documented syntax: https://github.com/tomzo/gocd-yaml-config-plugin?tab=readme-ov-file#script Looks like you generated some nonsense with ChatGPT? :-) On Mon, Nov 4, 2024 at 6:35 PM Tanmoy santra <[email protected]> wrote: > format_version: 10 > pipelines: > build_3d_models_service: > group: 'defaultGroup' > label_template: '${Appname}-${ENV}-${GO_PIPELINE_COUNTER}' > parameters: > Appname: '3d-models-service' > Branch: 'master-java-21' # Default branch for the servercp repository > JavaVersion: '21' > ENV: 'staging-mumbai' # Deployment environment > environment_variables: > JAVA_HOME_21: '/usr/lib/jvm/java-21-openjdk' > MAVEN_HOME: '/usr/share/java/maven' > # AWS credentials should be set securely via GoCD environment variables or > secrets > materials: > dockerfiles: > git: > url: '[email protected]:metiseduventures/adda-store-k8s.git' > branch: 'dockerfile-adda-devo-21' > destination: dockerfiles > servercp: > git: > url: '[email protected]:metiseduventures/servercp.git' > branch: '${Branch}' > destination: servercp > deployment_repo: > git: > url: '[email protected]:metiseduventures/adda-store-k8s.git' > branch: '${ENV}' > destination: deployment_repo > stages: > - name: BuildAndDeploy > jobs: > - name: BuildAndPush > tasks: > - script: > shell: bash > command: | > #!/bin/bash > set -e # Exit immediately if a command exits with a non-zero status > > # **Set up environment variables** > echo "Setting up environment variables..." > if [ "${ENV}" == "production" ]; then > accountid="490891715875" > else > accountid="436568657448" > fi > DOCKERHUB_USERNAME="${accountid}.dkr.ecr.ap-south-1.amazonaws.com" > APP_NAME="${Appname}" > BUILD_TIME=$(date +"%d-%h_%H:%M:%S") > IMAGE_TAG="${GO_PIPELINE_COUNTER}-${Branch}-${ENV}-${BUILD_TIME}" > IMAGE_NAME="${DOCKERHUB_USERNAME}/${APP_NAME}" > > # Set JAVA_HOME based on JavaVersion > if [ "${JavaVersion}" == "21" ]; then > export JAVA_HOME="${JAVA_HOME_21}" > fi > > export PATH=$JAVA_HOME/bin:${MAVEN_HOME}/bin:$PATH > > echo "JAVA_HOME is set to ${JAVA_HOME}" > echo "Maven home is set to ${MAVEN_HOME}" > > # **Ensure GOCD_WORKING_DIR is set** > if [ -z "${GOCD_WORKING_DIR}" ]; then > export GOCD_WORKING_DIR=$(pwd) > fi > > # **Build Dependencies** > > echo "Building dependencies..." > > # Build common-search-dto > cd "${GOCD_WORKING_DIR}/servercp/common-search-dto" > mvn clean install > > # Build commons-parent > cd "${GOCD_WORKING_DIR}/servercp/commons-parent" > git checkout 'ha-release-skills-21' > git pull origin 'ha-release-skills-21' > mvn clean install > > # Return to working directory > cd "${GOCD_WORKING_DIR}" > > # **Build Main Application** > > echo "Building main application ${APP_NAME}..." > > cd "${GOCD_WORKING_DIR}/servercp/models/${APP_NAME}" > mvn clean install -Dmaven.test.skip=true > > # **Build and Push Docker Image** > > echo "Building and pushing Docker image..." > cd "${GOCD_WORKING_DIR}/servercp/models/${APP_NAME}/target" > cp "${GOCD_WORKING_DIR}/dockerfiles/Dockerfile.${APP_NAME}" . > cp "${GOCD_WORKING_DIR}/dockerfiles/.dockerignore" . > > # AWS ECR login > aws ecr get-login-password --region ap-south-1 | docker login --username > AWS --password-stdin "${DOCKERHUB_USERNAME}" > > # Build and push Docker image using Buildx > docker buildx build --platform linux/amd64,linux/arm64 \ > -t "${IMAGE_NAME}:${IMAGE_TAG}" \ > -f "Dockerfile.${APP_NAME}" . --push > > # Export variables for next tasks > echo "IMAGE_NAME=${IMAGE_NAME}" >> "$GOCD_ENV_FILE" > echo "IMAGE_TAG=${IMAGE_TAG}" >> "$GOCD_ENV_FILE" > > - script: > shell: bash > command: | > #!/bin/bash > set -e # Exit immediately if a command exits with a non-zero status > > # **Update Deployment Files in GitHub** > > echo "Updating deployment files in GitHub..." > > # Ensure GOCD_WORKING_DIR is set > if [ -z "${GOCD_WORKING_DIR}" ]; then > export GOCD_WORKING_DIR=$(pwd) > fi > > # Set variables > DEPLOY_REPO_DIR='deployment_repo' > BRANCH_NAME="${ENV}" > DEPLOYMENT_FILE="3d-models-servicestaging-mumbai.yml" > > # Navigate to the deployment repository > cd "${GOCD_WORKING_DIR}/${DEPLOY_REPO_DIR}" > > # Ensure we're on the correct branch > git checkout "${BRANCH_NAME}" > git pull origin "${BRANCH_NAME}" > > # Update deployment file > # Replace the image tag in the deployment file > sed -i "s|^\(\s*image:\s*\).*|\1${IMAGE_NAME}:${IMAGE_TAG}|" > "${DEPLOYMENT_FILE}" > > # Commit and push changes > git config user.email "email" > git config user.name "name" > git add "${DEPLOYMENT_FILE}" > git commit -m "Update ${Appname} image to ${IMAGE_TAG}" > git push origin "${BRANCH_NAME}" > > echo "Deployment files updated successfully." > > # Optional: Send notification after updating deployment files > - script: > shell: bash > command: | > #!/bin/bash > # **Send Slack Notification** > echo "Sending Slack notification..." > curl --location --request POST ' > https://chat.googleapis.com/v1/spaces/AAAAteeAa0k/messages?key=your-key&token=your-token' > \ > --header 'Content-Type: application/json' \ > --data-raw '{"text":"Deployment of '${Appname}' with Tag '${IMAGE_TAG}' in > '${ENV}' Environment started. Deployment files updated."}' > using this getting this error - > > - pipeline.gocd.yaml; 1. Failed to parse pipeline > build_3d_models_service; class java.util.LinkedHashMap cannot be cast to > class java.lang.String (java.util.LinkedHashMap and java.lang.String are in > module java.base of loader 'bootstrap') ----- How to fix this error? > and what is the error? > > > -- > You received this message because you are subscribed to the Google Groups > "go-cd" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion visit > https://groups.google.com/d/msgid/go-cd/6f5d1a8c-df8e-48a4-8109-9423d2c503efn%40googlegroups.com > <https://groups.google.com/d/msgid/go-cd/6f5d1a8c-df8e-48a4-8109-9423d2c503efn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "go-cd" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion visit https://groups.google.com/d/msgid/go-cd/CAA1RwH9MqYwyAP%2BZoPiYV7o0UZkPiogP15v7Mdc15iPi-FM%2BRQ%40mail.gmail.com.
