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.

Reply via email to