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 |           file: ./test/Dockerfile | ||||||
|         env: |         env: | ||||||
|           DOCKER_BUILD_RECORD_RETENTION_DAYS: ${{ matrix.days }} |           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; |     let err: Error | undefined; | ||||||
|     await Exec.getExecOutput(buildCmd.command, buildCmd.args, { |     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 => { |     }).then(res => { | ||||||
|       if (res.stderr.length > 0 && res.exitCode != 0) { |       if (res.stderr.length > 0 && res.exitCode != 0) { | ||||||
|         err = Error(`buildx failed with: ${res.stderr.match(/(.*)\s*$/)?.[0]?.trim() ?? 'unknown error'}`); |         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 imageID = toolkit.buildxBuild.resolveImageID(); | ||||||
|     const metadata = toolkit.buildxBuild.resolveMetadata(); |     const metadata = toolkit.buildxBuild.resolveMetadata(); | ||||||
|     const digest = toolkit.buildxBuild.resolveDigest(); |     const digest = toolkit.buildxBuild.resolveDigest(metadata); | ||||||
|     if (imageID) { |     if (imageID) { | ||||||
|       await core.group(`ImageID`, async () => { |       await core.group(`ImageID`, async () => { | ||||||
|         core.info(imageID); |         core.info(imageID); | ||||||
| @ -127,7 +132,7 @@ actionsToolkit.run( | |||||||
|       }); |       }); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     let ref: string; |     let ref: string | undefined; | ||||||
|     await core.group(`Reference`, async () => { |     await core.group(`Reference`, async () => { | ||||||
|       ref = await buildRef(toolkit, startedTime, inputs.builder); |       ref = await buildRef(toolkit, startedTime, inputs.builder); | ||||||
|       if (ref) { |       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 () => { |     await core.group(`Check build summary support`, async () => { | ||||||
|       if (!buildSummaryEnabled()) { |       if (!buildSummaryEnabled()) { | ||||||
|         core.info('Build summary disabled'); |         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