export function createNotebookInstanceBuildSpec()

in cdk-project/lib/buildspecs.ts [115:151]


export function createNotebookInstanceBuildSpec(): codebuild.BuildSpec {
    return codebuild.BuildSpec.fromObject({
        version: "0.2",
        env: {
            variables: {
                INSTANCE_TYPE: "ml.m5.xlarge",
                REGION: "us-west-2",
            },
        },
        phases: {
            pre_build: {
                commands: [
                    `PR_NUM=$(echo $CODEBUILD_SOURCE_VERSION | grep -o "[0-9]\\+")`,
                    `NOTEBOOKS="$(pr-notebook-filenames --pr $PR_NUM)"`,
                ],
            },
            build: {
                commands: [
                    `
                    if [ -z "$NOTEBOOKS" ]; then
                        echo "No notebooks to test in this pull request."
                    else
                        echo "Testing $NOTEBOOKS"
                        aws s3 cp s3://sagemaker-mead-cli/mead-nb-test.tar.gz mead-nb-test.tar.gz
                        tar -xzf mead-nb-test.tar.gz
                        export JAVA_HOME=$(get-java-home)
                        echo "set JAVA_HOME=$JAVA_HOME"
                        export SAGEMAKER_ROLE_ARN=$(aws iam list-roles --output text --query "Roles[?RoleName == 'SageMakerRole'].Arn")
                        echo "set SAGEMAKER_ROLE_ARN=$SAGEMAKER_ROLE_ARN"
                        ./runtime/bin/mead-run-nb-test --instance-type $INSTANCE_TYPE --region $REGION --notebook-instance-role-arn $SAGEMAKER_ROLE_ARN $NOTEBOOKS
                    fi
                    `,
                ],
            },
        },
    });
}