name: Publish to npm # Publishes fleet-memory-mcp to npm via OIDC Trusted Publishing. # No NPM_TOKEN needed — npm verifies this workflow's identity through the # Trusted Publisher trust configured on npmjs.com (holetron-lab/fleet-memory). # NOTE: that trust entry is per package AND per repo. It has to be re-created on # npmjs.com for fleet-memory-mcp + holetron-lab/fleet-memory before the first release fires, # otherwise the publish step fails with an OIDC mismatch. # Fires when a GitHub Release is published; the release tag is the source of truth # for the version already set in mcp-server/package.json. on: release: types: [published] workflow_dispatch: permissions: contents: read id-token: write # required for OIDC provenance + Trusted Publishing jobs: publish: runs-on: ubuntu-latest defaults: run: working-directory: mcp-server steps: - uses: actions/checkout@v7 # Node 22, not 20: the upgrade step below pulls npm@latest, and npm 12 # declares engines node ^22.22.2 || ^24.15.0 || >=26. On Node 20 that # install fails the engine check and the publish step never runs — after # the GitHub Release is already public. The published package itself # still supports Node >=18 (mcp-server/package.json engines); this pins # only the build runner. - uses: actions/setup-node@v7 with: node-version: '22' registry-url: 'https://registry.npmjs.org' # Trusted Publishing + provenance require npm >= 11.5.1 - name: Upgrade npm run: npm install -g npm@latest - name: Install dependencies run: npm ci || npm install - name: Publish run: npm publish --provenance --access public