Clean up job summaries: per-job artifacts, logical names, size column#43
Merged
Clean up job summaries: per-job artifacts, logical names, size column#43
Conversation
Replaces the noisy "Fly action" banner with a clean job-name header (from GITHUB_JOB). Resolves raw artifact filenames into logical package names and versions by porting the Go path parser to TypeScript. Deduplicates artifacts and groups by ecosystem. Adds an optional Size column when the backend provides artifact sizes, and conditionally omits it for backward compatibility with older data.
…back In CI, GITHUB_JOB is set to the actual job name (e.g. "unit-tests"), so the "CI Job" fallback is never used. Match the ## header pattern instead of a specific string.
Contributor
sverdlov93
reviewed
Apr 15, 2026
Collaborator
sverdlov93
left a comment
There was a problem hiding this comment.
Review — fly-action PR #43
Nice cleanup — the job summaries will be much more useful with logical names, dedup, and per-job filtering. The TS port of artifact_path.go is faithful (verified all 7 parsers against the Go source). Tests are comprehensive (23 for artifact-path, good coverage in job-summary.spec). A few items below.
Port correctness: All parsers (npm, docker, maven, pypi, nuget, generic) match the Go source in fly-service/internal/graphql/artifactpath/artifact_path.go. Edge cases (scoped npm, sha256 digests, maven metadata, flat nuget filenames) are all handled identically.
…e assertion - DRY: buildArtifactsTable now calls resolveAndDedup instead of reimplementing resolve+filter+dedup inline. - Edge case: show "No displayable artifacts" message when all artifacts are filtered out (e.g. digest-only Docker pushes) instead of silently omitting the section. - E2e: replace loose regex with dynamic GITHUB_JOB assertion to validate template substitution end-to-end.
igalsi-t
added a commit
that referenced
this pull request
Apr 16, 2026
Integrate buildArtifactsTable, formatSize, and template simplification from #43 alongside the distribute feature additions. Made-with: Cursor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

Overview
Addresses fly-desktop#170 (client half). Cleans up the GitHub Actions job summary to be useful instead of noisy.
Before: Every job showed a "🦋 Fly action — Completed successfully" banner with raw artifact filenames (
manifest.json,my-lib-1.0.0.tgz) and duplicates across all jobs.After: Clean job-name header, logical package names with versions, deduplication, ecosystem grouping, and optional size column.
What changed
Template (
templates/job-summary.md)## {GITHUB_JOB}(e.g. "Docker Release", "NPM Release")Artifact name resolution (
src/artifact-path.ts— new)Ported
ExtractPackageAndVersionfromfly-service's Go code to TypeScript. Parses Artifactory deployment paths to extract logical names:my-lib-1.0.0.tgzmy-lib/-/my-lib-1.0.0.tgzmanifest.jsonmyorg/api/v2.0.0/manifest.jsonmanifest.jsonmyorg/api/sha256:abc/manifest.jsonapp-1.0.jarcom/example/app/1.0/app-1.0.jarDeduplication and grouping (
src/job-summary.ts)(type, name, version)— Docker manifests that appear multiple times collapse to one rowTypes (
src/types.ts)CollectedArtifactextended with optionaltimestampandsizefields matching the new backend responseNotes
artifact-path.tscovering all ecosystems and edge cases