2828import com .google .cloud .storage .BlobInfo ;
2929import com .google .cloud .storage .transfermanager .ParallelUploadConfig ;
3030import com .google .cloud .storage .transfermanager .TransferManager ;
31+ import com .google .cloud .storage .transfermanager .TransferStatus ;
3132import com .google .cloud .storage .transfermanager .UploadResult ;
3233import org .slf4j .Logger ;
3334import org .slf4j .LoggerFactory ;
@@ -60,13 +61,15 @@ public CommercialAntoraDocsPublisher(TransferManager transferManager) {
6061 public void publish (File project , ReleaserProperties properties ) throws IOException {
6162 checkAndLog ();
6263 String antoraSite = project .getAbsolutePath () + "/target/antora/site" ;
63- // This UploadBlobInfoFactory is used to alter the paths where the files will be uploaded in the bucket
64+ // This UploadBlobInfoFactory is used to alter the paths where the files will be
65+ // uploaded in the bucket
6466 ParallelUploadConfig .UploadBlobInfoFactory uploadBlobInfoFactory = (String bucketName , String fileName ) -> {
6567 ProjectVersion version = new ProjectVersion (project );
66- // The spring-cloud-release docs will be under the project spring-cloud-starter-build but we want
68+ // The spring-cloud-release docs will be under the project
69+ // spring-cloud-starter-build but we want
6770 // them uploaded under spring-cloud-release
68- String projectName = "spring-cloud-starter-build" .equals (version .projectName ) ? "spring-cloud-release" :
69- version .projectName ;
71+ String projectName = "spring-cloud-starter-build" .equals (version .projectName ) ? "spring-cloud-release"
72+ : version .projectName ;
7073 String blobLocation = projectName + "/reference" + fileName .substring (antoraSite .length ());
7174 Optional <MediaType > mediaTypeOptional = MediaTypeFactory .getMediaType (blobLocation );
7275 BlobInfo .Builder blobInfoBuilder = BlobInfo .newBuilder (bucketName , blobLocation );
@@ -83,8 +86,17 @@ public void publish(File project, ReleaserProperties properties) throws IOExcept
8386 pathStream .filter (Files ::isRegularFile ).forEach (filePaths ::add );
8487 }
8588 List <UploadResult > results = transferManager .uploadFiles (filePaths , parallelUploadConfig ).getUploadResults ();
89+ boolean failedToTransfer = false ;
8690 for (UploadResult result : results ) {
87- log .info ("Upload for {} completed with status {}" , result .getInput ().getName (), result .getStatus ());
91+ TransferStatus status = result .getStatus ();
92+ log .info ("Upload for {} completed with status {}" , result .getInput ().getName (), status );
93+ if (status == TransferStatus .FAILED_TO_START || status == TransferStatus .FAILED_TO_FINISH ) {
94+ log .warn ("Transfer failed: {}" , result .getException ().getMessage ());
95+ failedToTransfer = true ;
96+ }
97+ }
98+ if (failedToTransfer ) {
99+ throw new IllegalStateException ("One or more file transfers to GCP bucket for docs failed." );
88100 }
89101 }
90102
0 commit comments