Skip to content

Add hardened macOS build and alpha prerelease workflow - #27

Closed
chris1111 with Copilot wants to merge 2 commits into
mainfrom
copilot/enhance-github-actions-hardening
Closed

chris1111 with Copilot wants to merge 2 commits into
mainfrom
copilot/enhance-github-actions-hardening

Conversation

Copilot AI commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

This adds .github/workflows/main.yml, based on the version in #26 (not yet merged), with a hardening pass. The workflow builds VoodooHDA on macOS, packages the kext, and publishes an alpha prerelease from main. Its structure and intent are unchanged.

  • Supply chain
    • actions/checkout, actions/upload-artifact and actions/download-artifact are pinned to commit SHAs, each with a version comment: checkout v4.3.1, upload-artifact v4.6.2, download-artifact v4.3.0.
    • The MacKernelSDK pin is unchanged.
  • Timeouts: build has timeout-minutes: 45 and prerelease has timeout-minutes: 15. Both values are estimates, so please adjust them to real build times.
  • Duplicate and wasted runs
    • paths-ignore for **.md, LICENSE and .github/ISSUE_TEMPLATE/** applies to both push and pull_request.
    • push is limited to branches: [main].
    • The per-ref concurrency group cannot dedupe push and PR runs, because they use different refs (refs/heads/x and refs/pull/N/merge). Limiting push to main is what prevents the duplicate runs.
    • Pushes to other branches build only through their PR.
  • Prerelease guard
    • Added a comment explaining that PR events, including fork PRs, never reach the write-scoped job.
    • The workflow level grants only contents: read. contents: write is set on the prerelease job alone.
  • Release notes: comments tie git log -5 to fetch-depth: 5, so the two are kept in sync.
  • Version validation
    • Both the package step and the prerelease step stop with ::error:: if the awk-extracted CURRENT_PROJECT_VERSION is empty. This prevents tags like v-alpha.
    • The tag is built as v${version}-alpha.

Review notes:

  • Pushes to non-main branches without an open PR no longer build.
  • The SHAs were resolved through the GitHub API and are worth a quick check against upstream.

Co-authored-by: chris1111 <6248794+chris1111@users.noreply.github.com>
Copilot AI changed the title [WIP] Enhance GitHub Actions workflow with hardening improvements Add hardened macOS build and alpha prerelease workflow Oct 5, 2026
Copilot AI requested a review from chris1111 October 5, 2026 02:41
@chris1111
chris1111 marked this pull request as ready for review October 5, 2026 02:43
Copilot AI balanced review requested due to automatic review settings October 5, 2026 02:43

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot review overview

🟡 Changes recommended

The SDK checkout location does not match the Xcode project's configured search paths, so the build cannot locate MacKernelSDK.

Review effort: Balanced
Findings: 1 High severity

Open (1)
What changed in this PR

Adds a hardened GitHub Actions workflow to build, package, and publish alpha VoodooHDA releases.

Changes:

  • Builds and packages the kernel extension on macOS.
  • Publishes guarded prereleases from main.
  • Pins actions and limits permissions, concurrency, and runtime.
File Description
.github/​workflows/​main.yml Adds the build, artifact, and prerelease workflow.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +47 to +51
xcodebuild -project tranc/VoodooHDA_BS.xcodeproj -target VoodooHDA \
-configuration "$CONFIGURATION" -jobs 3 ARCHS=x86_64 \
SYMROOT="$PWD/build/products" OBJROOT="$PWD/build/obj" \
CODE_SIGNING_ALLOWED=NO GIT_COMMIT="_$(git rev-parse --short HEAD)" \
build > logs/VoodooHDA.log 2>&1 || { tail -100 logs/VoodooHDA.log; exit 1; }
@chris1111 chris1111 closed this Oct 5, 2026
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.

3 participants