Skip to content

Commit 1f83cf0

Browse files
committed
fix: extract digest from inspect output using regex parsing
1 parent b1c2d1e commit 1f83cf0

3 files changed

Lines changed: 18 additions & 15 deletions

File tree

github-action/dist/index.js

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2266,20 +2266,21 @@ function runMain() {
22662266
for (const tag of imageTagArray) {
22672267
const finalTag = platform ? `${tag}-${platform.replace('/', '-')}` : tag;
22682268
core.info(`Attempting to inspect registry image: ${imageName}:${finalTag}`);
2269-
const inspectCmd = yield (0, exec_1.exec)('docker', ['buildx', 'imagetools', 'inspect', `${imageName}:${finalTag}`, '--format', '{{.Manifest.Digest}}'], { silent: true });
2269+
const inspectCmd = yield (0, exec_1.exec)('docker', ['buildx', 'imagetools', 'inspect', `${imageName}:${finalTag}`], { silent: true });
22702270
core.info(`Inspect command exit code: ${inspectCmd.exitCode}`);
2271-
core.info(`Inspect command stdout: "${inspectCmd.stdout}"`);
2272-
core.info(`Inspect command stderr: "${inspectCmd.stderr}"`);
22732271
if (inspectCmd.exitCode === 0) {
2274-
const digest = inspectCmd.stdout.trim();
2275-
core.info(`Raw digest output: "${digest}"`);
2276-
if (digest && digest.startsWith('sha256:')) {
2272+
const output = inspectCmd.stdout.trim();
2273+
core.info(`Inspect output: "${output}"`);
2274+
// Extract digest from the output (format: "Digest: sha256:...")
2275+
const digestMatch = output.match(/Digest:\s+(sha256:[a-f0-9]+)/);
2276+
if (digestMatch) {
2277+
const digest = digestMatch[1];
22772278
core.info(`Image digest for ${platform}: ${digest}`);
22782279
digestsObj[platform] = digest;
22792280
break; // Found digest, stop looking
22802281
}
22812282
else {
2282-
core.warning(`Invalid digest format: "${digest}"`);
2283+
core.warning(`Could not extract digest from inspect output: "${output}"`);
22832284
}
22842285
}
22852286
else {

github-action/dist/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

github-action/src/main.ts

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -173,23 +173,25 @@ export async function runMain(): Promise<void> {
173173

174174
const inspectCmd = await exec(
175175
'docker',
176-
['buildx', 'imagetools', 'inspect', `${imageName}:${finalTag}`, '--format', '{{.Manifest.Digest}}'],
176+
['buildx', 'imagetools', 'inspect', `${imageName}:${finalTag}`],
177177
{silent: true}
178178
);
179179

180180
core.info(`Inspect command exit code: ${inspectCmd.exitCode}`);
181-
core.info(`Inspect command stdout: "${inspectCmd.stdout}"`);
182-
core.info(`Inspect command stderr: "${inspectCmd.stderr}"`);
183181

184182
if (inspectCmd.exitCode === 0) {
185-
const digest = inspectCmd.stdout.trim();
186-
core.info(`Raw digest output: "${digest}"`);
187-
if (digest && digest.startsWith('sha256:')) {
183+
const output = inspectCmd.stdout.trim();
184+
core.info(`Inspect output: "${output}"`);
185+
186+
// Extract digest from the output (format: "Digest: sha256:...")
187+
const digestMatch = output.match(/Digest:\s+(sha256:[a-f0-9]+)/);
188+
if (digestMatch) {
189+
const digest = digestMatch[1];
188190
core.info(`Image digest for ${platform}: ${digest}`);
189191
digestsObj[platform] = digest;
190192
break; // Found digest, stop looking
191193
} else {
192-
core.warning(`Invalid digest format: "${digest}"`);
194+
core.warning(`Could not extract digest from inspect output: "${output}"`);
193195
}
194196
} else {
195197
core.warning(`Failed to inspect registry image for ${finalTag}: ${inspectCmd.stderr}`);

0 commit comments

Comments
 (0)