diff --git a/provider/notification-aws/build-aws/build-info.py b/provider/notification-aws/build-aws/build-info.py index 1ea9b54bde9216cd158e4ea43eef41f06b8da1be..33c0f0a73c22cfe2beebc6c3630b9bcb136c5b0c 100644 --- a/provider/notification-aws/build-aws/build-info.py +++ b/provider/notification-aws/build-aws/build-info.py @@ -1,16 +1,4 @@ -# Copyright © 2020 Amazon Web Services -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. +# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. import boto3 import json import os @@ -18,12 +6,11 @@ import argparse # Create the build-info.json parser = argparse.ArgumentParser(description="") - -# env - CODEBUILD_SOURCE_VERSION parser.add_argument("--branch", type=str, help="") - -# env - CODEBUILD_RESOLVED_SOURCE_VERSION -parser.add_argument("--commit", type=str, help="") +parser.add_argument("--commitId", type=str, help="") +parser.add_argument("--commitMessage", type=str, help="") +parser.add_argument("--commitAuthor", type=str, help="") +parser.add_argument("--commitDate", type=str, help="") # env - CODEBUILD_BUILD_ID parser.add_argument("--buildid", type=str, help="") @@ -31,7 +18,6 @@ parser.add_argument("--buildid", type=str, help="") # env - CODEBUILD_BUILD_NUMBER parser.add_argument("--buildnumber", type=str, help="") -# Get from directory name parser.add_argument("--reponame", type=str, help="") # env OUTPUT_DIR @@ -45,7 +31,10 @@ parser.add_argument("--artifact", type=str, action="append", help="") args = parser.parse_args() branch = args.branch -commitId = args.commit +commitId = args.commitId +commitMessage = args.commitMessage +commitAuthor = args.commitAuthor +commitDate = args.commitDate buildId = args.buildid buildNumber = args.buildnumber repoName = args.reponame @@ -56,32 +45,20 @@ buildInfoFilePath = os.path.join(".", outputDir, "build-info.json") print(buildInfoFilePath) -commitArgs = { - "repositoryName": repoName, - "commitId": commitId -} - -commitDetail = { - "commit": "" -} - -# get the commit detail -try: - codecommit = boto3.client("codecommit") - commitDetail = codecommit.get_commit(**commitArgs) -except Exception as e: - print("Getting commit information from codecommit failed") - buildInfo = { "branch": branch, "build-id": buildId, "build-number": buildNumber, "repo": repoName, "artifacts": artifacts, - "commit": commitDetail["commit"] + "commit-id": commitId, + "commit-message": commitMessage, + "commit-author": commitAuthor, + "commit-date":commitDate } -print(json.dumps(buildInfo, sort_keys=True, indent=4)) + +print(json.dumps(buildInfo, sort_keys=True, indent=4)) # write the build.json file to dist f = open(buildInfoFilePath, "w") f.write(json.dumps(buildInfo, sort_keys=True, indent=4)) diff --git a/provider/notification-aws/build-aws/buildspec.yaml b/provider/notification-aws/build-aws/buildspec.yaml index 1e1e85b3f83bdc9e347823cb8d06b113776c227b..bdd553733f044b0af8141b3d5d4a07517ed6fba4 100644 --- a/provider/notification-aws/build-aws/buildspec.yaml +++ b/provider/notification-aws/build-aws/buildspec.yaml @@ -32,7 +32,6 @@ phases: runtime-versions: java: corretto17 commands: - - if [ $(echo $CODEBUILD_SOURCE_VERSION | grep -c ^refs/heads.*) -eq 1 ]; then echo "Branch name found"; else echo "This build only supports branch builds" && exit 1; fi - java -version - mvn -version - mkdir -p /root/.m2 @@ -50,11 +49,10 @@ phases: - docker login -u ${DOCKER_USERNAME} -p ${DOCKER_PASSWORD} build: commands: - - export REPO_NAME=${PWD##*/} - export OUTPUT_DIR="dist" - - export BRANCH_NAME=`echo ${CODEBUILD_SOURCE_VERSION} | awk '{gsub("refs/heads/","");gsub("\\.","-");gsub("[[:space:]]","-")}1' | sed 's/\//-/g' | awk '{print tolower($0)}'` - - export ECR_TAG=`echo build.${BRANCH_NAME}.${CODEBUILD_BUILD_NUMBER}.${CODEBUILD_RESOLVED_SOURCE_VERSION} | cut -c 1-120` - - export PUSH_ENDPOINT_ECR_TAG=`echo push_endpoint.${BRANCH_NAME}.${CODEBUILD_BUILD_NUMBER}.${CODEBUILD_RESOLVED_SOURCE_VERSION} | cut -c 1-120` + - export BRANCH_NAME=`echo ${BRANCH_NAME} | awk '{gsub("refs/heads/","");gsub("\\.","-");gsub("[[:space:]]","-")}1' | sed 's/\//-/g' | awk '{print tolower($0)}'` + - export ECR_TAG=`echo build.${BRANCH_NAME}.${CODEBUILD_BUILD_NUMBER}.${COMMIT_ID} | cut -c 1-120` + - export PUSH_ENDPOINT_ECR_TAG=`echo push_endpoint.${BRANCH_NAME}.${CODEBUILD_BUILD_NUMBER}.${COMMIT_ID} | cut -c 1-120` - export ECR_IMAGE=${ECR_REGISTRY}:${ECR_TAG} - export ECR_IMAGE_BRANCH_LATEST=${ECR_REGISTRY}:${BRANCH_NAME} - export PUSH_ENDPOINT_IMAGE=${ECR_REGISTRY}:${PUSH_ENDPOINT_ECR_TAG} @@ -84,7 +82,8 @@ phases: - echo "Generate build-info.json" - | - python provider/notification-aws/build-aws/build-info.py --branch ${CODEBUILD_SOURCE_VERSION} --commit ${CODEBUILD_RESOLVED_SOURCE_VERSION} \ + python provider/notification-aws/build-aws/build-info.py --branch ${BRANCH_NAME} --commitId ${COMMIT_ID} \ + --commitMessage "\"${COMMIT_MESSAGE}\"" --commitAuthor "\"${COMMIT_AUTHOR}\"" --commitDate "\"${COMMIT_DATE}\"" \ --buildid ${CODEBUILD_BUILD_ID} --buildnumber ${CODEBUILD_BUILD_NUMBER} --reponame ${REPO_NAME} --outdir ${OUTPUT_DIR} \ --artifact ${ECR_IMAGE} @@ -98,7 +97,7 @@ artifacts: files: - "**/*" base-directory: "dist" - name: ${REPO_NAME}_${BRANCH_NAME}_$(date +%F)_${CODEBUILD_BUILD_NUMBER}.zip + name: ${BRANCH_NAME}/${PACKAGE_NAME}.zip cache: paths: - "/root/.m2/**/*" \ No newline at end of file