Compare commits

...

3 Commits

Author SHA1 Message Date
Arthur Tazhitdinov
79dde3a976
Merge a540edd437 into da4d3b5ea5 2026-01-30 17:52:45 +00:00
Arthur Tazhitdinov
a540edd437 feat: capture short SHA for firmware artifact naming in PR comments 2026-01-30 22:51:28 +05:00
Arthur Tazhitdinov
c008d238d5 fix: update firmware artifact link in PR comment to point to the UI 2026-01-30 22:32:27 +05:00

View File

@ -72,6 +72,10 @@ jobs:
set -euo pipefail
pio run | tee pio.log
- name: Capture short SHA
id: short_sha
run: echo "short=${GITHUB_SHA::7}" >> "$GITHUB_OUTPUT"
- name: Extract firmware stats
id: fw_stats
run: |
@ -89,7 +93,7 @@ jobs:
- name: Upload firmware.bin artifact
uses: actions/upload-artifact@v4
with:
name: ${{ github.event_name == 'pull_request' && format('firmware-bin-pr-{0}-{1}', github.event.pull_request.number, github.sha) || format('firmware-bin-{0}', github.sha) }}
name: ${{ github.event_name == 'pull_request' && format('firmware-bin-pr-{0}-{1}', github.event.pull_request.number, steps.short_sha.outputs.short) || format('firmware-bin-{0}', steps.short_sha.outputs.short) }}
path: .pio/build/default/firmware.bin
if-no-files-found: error
@ -102,9 +106,10 @@ jobs:
const ram = `${{ steps.fw_stats.outputs.ram_line }}`.trim();
const flash = `${{ steps.fw_stats.outputs.flash_line }}`.trim();
const prNumber = context.payload.pull_request?.number;
const shortSha = `${{ steps.short_sha.outputs.short }}`.trim() || context.sha.substring(0, 7);
const artifactName = prNumber
? `firmware-bin-pr-${prNumber}-${context.sha}`
: `firmware-bin-${context.sha}`;
? `firmware-bin-pr-${prNumber}-${shortSha}`
: `firmware-bin-${shortSha}`;
let firmwareLine = 'Firmware: artifact not found';
try {
const { data: artifacts } = await github.rest.actions.listWorkflowRunArtifacts({
@ -114,7 +119,8 @@ jobs:
});
const firmwareArtifact = artifacts.artifacts.find((artifact) => artifact.name === artifactName);
if (firmwareArtifact) {
firmwareLine = `Firmware: [firmware.bin artifact](${firmwareArtifact.archive_download_url})`;
const artifactUiUrl = `https://github.com/${context.repo.owner}/${context.repo.repo}/actions/runs/${context.runId}/artifacts/${firmwareArtifact.id}`;
firmwareLine = `Firmware: [${artifactName}](${artifactUiUrl})`;
} else {
firmwareLine = `Firmware: artifact not found (${artifactName})`;
}