awslabs / awslabs/aws-codebuild-jenkins-plugin

Source Override does not work for AWS Gov Cloud

Open
#133 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
156
Forks
130
PR merge metrics
No merged PRs in 30d

Description

When try to use `sourceLocationOverride` with AWS Gov Cloud bucket the build fail with the message below.

```
com.amazonaws.services.s3.model.AmazonS3Exception: The specified bucket is not valid. (Service: Amazon S3; Status Code: 400; Error Code: InvalidBucketName; S3 Extended Request ID; Proxy: ), S3 Extended Request ID:
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1879)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleServiceErrorResponse(AmazonHttpClient.java:1418)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1387)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1157)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:814)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:781)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:755)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:715)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:697)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:561)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:541)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:5453)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:5400)
at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:5394)
at com.amazonaws.services.s3.AmazonS3Client.getBucketVersioningConfiguration(AmazonS3Client.java:2447)
at com.amazonaws.services.s3.AmazonS3Client.getBucketVersioningConfiguration(AmazonS3Client.java:2431)
at CodeBuilderValidation.checkBucketIsVersioned(CodeBuilderValidation.java:224)
at CodeBuilder.perform(CodeBuilder.java:417)
at CodeBuilder.perform(CodeBuilder.java:261)
at CodeBuildStep$CodeBuildExecution.run(CodeBuildStep.java:650)
at CodeBuildStep$CodeBuildExecution.run(CodeBuildStep.java:610)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1$1.call(AbstractSynchronousNonBlockingStepExecution.java:47)
at hudson.security.ACL.impersonate2(ACL.java:451)
at hudson.security.ACL.impersonate(ACL.java:463)
at org.jenkinsci.plugins.workflow.steps.AbstractSynchronousNonBlockingStepExecution$1.run(AbstractSynchronousNonBlockingStepExecution.java:44)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:829)
```

Contributor guide

Open the contributing guide

Research direction

Start at CodeBuilderValidation.checkBucketIsVersioned, where the stack trace shows the failure, and trace how sourceLocationOverride reaches the AWS S3 client through CodeBuilder.perform. Reproduce the build with an AWS GovCloud bucket and compare it with a standard AWS bucket. Done means the overridden GovCloud source is accepted without InvalidBucketName while the existing versioning validation still works.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, java
Domain
ci-cd, cloud
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.