Skip to content

ci: replace dead upstream CI with fork pack-and-verify workflow#3

Merged
oysteinkrog merged 2 commits into
InitialForce:masterfrom
oysteinkrog:bead-61d7-fork-ci
Jul 5, 2026
Merged

ci: replace dead upstream CI with fork pack-and-verify workflow#3
oysteinkrog merged 2 commits into
InitialForce:masterfrom
oysteinkrog:bead-61d7-fork-ci

Conversation

@oysteinkrog

Copy link
Copy Markdown
Member

Summary

  • Upstream .github/workflows/main.yml (dotnet 6.0.x, ubuntu+windows matrix) has zero runs ever on this fork -- PR DESKTOP-12084: FFmpeg redist ships stale 256 MB static ffmpeg/ffprobe binaries #1 merged with no checks.
  • Replaces it with a workflow scoped to the fork's actual needs on windows-latest: build FFmpeg.AutoGen.Redist + FFmpeg.AutoGen.Bindings.DllImport (dotnet 9.x), run the FFmpeg.AutoGen.ClangMacroParser.Test suite, pack both projects, run scripts/verify_redist.py's self-tests plus the real gates against the freshly packed Redist nupkg, and upload both nupkgs as artifacts.
  • Job is named pack-and-verify exactly, per br-ffmpeg-pipeline-61d.8 which pins that context string for branch protection.
  • Adds workflow_dispatch and a monthly keepalive cron (with the 60-day scheduled-workflow auto-disable bootstrap limitation documented inline).

Deviations from a literal "build the whole solution" reading

  • Drops upstream's codegen step: it targets FFmpeg.AutoGen as a buildable project, which no longer exists after PR DESKTOP-12084: FFmpeg redist ships stale 256 MB static ffmpeg/ffprobe binaries #1 split bindings into per-target FFmpeg.AutoGen.Bindings.* projects (each self-contained, with its own generated/). Bindings-drift detection is separate, tracked work: br-ffmpeg-pipeline-61d.10.
  • Builds only the specific projects this pipeline packs/tests, not the whole solution: FFmpeg.AutoGen.Example has a pre-existing, unrelated compile break (still using FFmpeg.AutoGen.Abstractions, removed from the binding projects by 0e9b0b7 "Make bindings projects self-contained, no dep on abstractions"). Confirmed failing identically on a clean checkout with no workflow changes. Filed separately as bd-mdp rather than fixed here.

Test plan

  • Verified locally (WSL dotnet 10 SDK, targeting the netstandard2.0/2.1 packable projects): dotnet build + dotnet pack for Redist and Bindings.DllImport succeed and produce nupkgs.
  • Ran scripts/test_verify_redist.py (18/18 pass) and scripts/verify_redist.py against the real freshly-packed FFmpeg.AutoGen.Redist.7.1.2.nupkg -- all 6 gates (manifest/forbidden/sizes/pe-imports/gpl-scan/nuspec) PASS.
  • This PR's own pull_request trigger exercises the new workflow on windows-latest -- that run is the CI evidence.

Upstream main.yml pins dotnet 6.0.x and has zero runs on this fork; PR InitialForce#1
merged with no checks. Replace it with a workflow scoped to what this fork
actually needs: build+pack FFmpeg.AutoGen.Redist and
FFmpeg.AutoGen.Bindings.DllImport on windows-latest (dotnet 9.x), run
scripts/verify_redist.py's self-tests plus the real gates against the
freshly packed Redist nupkg, and upload both nupkgs as artifacts. Job is
named `pack-and-verify` per br-ffmpeg-pipeline-61d.8, which pins that
context string for branch protection.

Drops the upstream codegen step (targets a project removed by the PR InitialForce#1
restructure; bindings drift detection is tracked separately as
br-ffmpeg-pipeline-61d.10) and builds only the projects this pipeline needs
rather than the whole solution, since FFmpeg.AutoGen.Example has a
pre-existing, unrelated compile break (tracked as bd-mdp).

Adds workflow_dispatch and a monthly keepalive cron against the 60-day
scheduled-workflow auto-disable on inactive public repos, with the
bootstrap limitation documented inline.
@oysteinkrog oysteinkrog merged commit 79bf05a into InitialForce:master Jul 5, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant