generate GitHub annotations for build checks
Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									a8d35412fb
								
							
						
					
					
						commit
						806a2a461f
					
				
							
								
								
									
										26
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										26
									
								
								.github/workflows/ci.yml
									
									
									
									
										vendored
									
									
								
							| @ -1463,3 +1463,29 @@ jobs: | ||||
|           file: ./test/Dockerfile | ||||
|         env: | ||||
|           DOCKER_BUILD_RECORD_RETENTION_DAYS: ${{ matrix.days }} | ||||
| 
 | ||||
|   checks: | ||||
|     runs-on: ubuntu-latest | ||||
|     strategy: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         buildx-version: | ||||
|           - latest | ||||
|           - v0.14.1 | ||||
|     steps: | ||||
|       - | ||||
|         name: Checkout | ||||
|         uses: actions/checkout@v4 | ||||
|       - | ||||
|         name: Set up Docker Buildx | ||||
|         uses: docker/setup-buildx-action@v3 | ||||
|         with: | ||||
|           version: ${{ matrix.buildx-version }} | ||||
|           driver-opts: | | ||||
|             image=${{ inputs.buildkit-image || env.BUILDKIT_IMAGE }} | ||||
|       - | ||||
|         name: Build | ||||
|         uses: ./ | ||||
|         with: | ||||
|           context: ./test | ||||
|           file: ./test/lint.Dockerfile | ||||
|  | ||||
							
								
								
									
										24
									
								
								src/main.ts
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								src/main.ts
									
									
									
									
									
								
							| @ -97,7 +97,12 @@ actionsToolkit.run( | ||||
| 
 | ||||
|     let err: Error | undefined; | ||||
|     await Exec.getExecOutput(buildCmd.command, buildCmd.args, { | ||||
|       ignoreReturnCode: true | ||||
|       ignoreReturnCode: true, | ||||
|       env: Object.assign({}, process.env, { | ||||
|         BUILDX_METADATA_WARNINGS: 'true' | ||||
|       }) as { | ||||
|         [key: string]: string; | ||||
|       } | ||||
|     }).then(res => { | ||||
|       if (res.stderr.length > 0 && res.exitCode != 0) { | ||||
|         err = Error(`buildx failed with: ${res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error'}`); | ||||
| @ -106,7 +111,7 @@ actionsToolkit.run( | ||||
| 
 | ||||
|     const imageID = toolkit.buildxBuild.resolveImageID(); | ||||
|     const metadata = toolkit.buildxBuild.resolveMetadata(); | ||||
|     const digest = toolkit.buildxBuild.resolveDigest(); | ||||
|     const digest = toolkit.buildxBuild.resolveDigest(metadata); | ||||
|     if (imageID) { | ||||
|       await core.group(`ImageID`, async () => { | ||||
|         core.info(imageID); | ||||
| @ -127,7 +132,7 @@ actionsToolkit.run( | ||||
|       }); | ||||
|     } | ||||
| 
 | ||||
|     let ref: string; | ||||
|     let ref: string | undefined; | ||||
|     await core.group(`Reference`, async () => { | ||||
|       ref = await buildRef(toolkit, startedTime, inputs.builder); | ||||
|       if (ref) { | ||||
| @ -138,6 +143,19 @@ actionsToolkit.run( | ||||
|       } | ||||
|     }); | ||||
| 
 | ||||
|     const warnings = toolkit.buildxBuild.resolveWarnings(metadata); | ||||
|     if (ref && warnings && warnings.length > 0) { | ||||
|       const annotations = await Buildx.convertWarningsToGitHubAnnotations(warnings, [ref]); | ||||
|       core.debug(`annotations: ${JSON.stringify(annotations, null, 2)}`); | ||||
|       if (annotations && annotations.length > 0) { | ||||
|         await core.group(`Generating GitHub annotations (${annotations.length} build checks found)`, async () => { | ||||
|           for (const annotation of annotations) { | ||||
|             core.warning(annotation.message, annotation); | ||||
|           } | ||||
|         }); | ||||
|       } | ||||
|     } | ||||
| 
 | ||||
|     await core.group(`Check build summary support`, async () => { | ||||
|       if (!buildSummaryEnabled()) { | ||||
|         core.info('Build summary disabled'); | ||||
|  | ||||
							
								
								
									
										12
									
								
								test/lint.Dockerfile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								test/lint.Dockerfile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | ||||
| frOM busybox as base | ||||
| cOpy lint.Dockerfile . | ||||
| 
 | ||||
| from scratch | ||||
| MAINTAINER moby@example.com | ||||
| COPy --from=base \ | ||||
|   /lint.Dockerfile \ | ||||
|   / | ||||
| 
 | ||||
| CMD [ "echo", "Hello, Norway!" ] | ||||
| CMD [ "echo", "Hello, Sweden!" ] | ||||
| ENTRYPOINT my-program start | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 CrazyMax
						CrazyMax