name: Real Go binary metadata on: workflow_dispatch: pull_request: paths: - ".github/workflows/real-go-binary.yml" - "src/go/**" - "src/domain/go/**" - "src/domain/dosMz.ts" - "src/application/go/**" - "src/contracts/go/**" - "src/composition/go.ts" - "src/cli/goCommands.ts" - "src/server/registerGoTools.ts" - "scripts/verify-go-binary.mjs" - "scripts/lib/mcp-verifier-results.mjs" permissions: contents: read concurrency: group: real-go-binary-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true env: NODE_OPTIONS: --max-old-space-size=768 HUSKY: "0" # Writes only on the default branch for push, schedule, manual dispatch, # and workflow_call. Pull requests get an empty token and remote read-only mode. TURBO_TOKEN: "${{ (github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'workflow_call')) && secrets.TURBO_TOKEN || '' }}" TURBO_TEAM: ${{ vars.TURBO_TEAM }} TURBO_CACHE: "${{ (github.ref == format('refs/heads/{0}', github.event.repository.default_branch) && (github.event_name == 'push' || github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'workflow_call')) && 'local:rw,remote:rw' || 'local:rw,remote:r' }}" jobs: real-go-binary: runs-on: ubuntu-24.04 timeout-minutes: 20 steps: - uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0 - uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version-file: .nvmrc - name: Cache npm package downloads id: npm-cache uses: ./.github/actions/npm-cache - uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5.6.0 with: go-version: "1.26.1" cache: false - run: npm ci - name: Verify compiler-produced ELF, PE and Mach-O through public CLI and MCP run: npm run verify:go:binary