Download .github/workflows/node-addon-system-release.yml from SaylorTwift/deepseek-harness: direct link, hf CLI and curl.
- Browser
- Download file 5.48 kB
-
https://huggingface.co/SaylorTwift/deepseek-harness/resolve/main/.github/workflows/node-addon-system-release.yml
- Command line
-
hf download hf://SaylorTwift/deepseek-harness/.github/workflows/node-addon-system-release.yml
-
curl -L -o node-addon-system-release.yml https://huggingface.co/SaylorTwift/deepseek-harness/resolve/main/.github/workflows/node-addon-system-release.yml
5.48 kB
| # Build and publish the @deepseek-ai/node-addon-system package family from the | |
| # harness source of record. Rehearsal and publication consume the same packed | |
| # tarballs; each native binary is built on its matching architecture. | |
| name: Node Addon System Release | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| publish: | |
| description: Publish packed tarballs to npm. Must run from a node-addon-system-v* tag. | |
| required: true | |
| type: boolean | |
| default: false | |
| permissions: | |
| contents: read | |
| concurrency: | |
| # Stable/prerelease dist-tags are shared registry state; serialize release | |
| # runs so two versions cannot race the final tag assignment. | |
| group: ${{ github.workflow }} | |
| cancel-in-progress: false | |
| defaults: | |
| run: | |
| working-directory: native/system | |
| jobs: | |
| matrix: | |
| name: Matrix | |
| runs-on: ubuntu-24.04 | |
| outputs: | |
| prebuilds: ${{ steps.matrix.outputs.prebuilds }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - id: matrix | |
| run: echo "prebuilds=$(node ./scripts/github-matrix.mjs release-prebuild)" >> "$GITHUB_OUTPUT" | |
| build-prebuilds: | |
| name: ${{ matrix.package }} | |
| needs: matrix | |
| runs-on: ${{ matrix.runner }} | |
| strategy: | |
| fail-fast: false | |
| matrix: ${{ fromJson(needs.matrix.outputs.prebuilds) }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| package_json_file: package.json | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 24 | |
| cache: pnpm | |
| cache-dependency-path: pnpm-lock.yaml | |
| - name: Install dependencies | |
| run: pnpm install --filter @deepseek-ai/node-addon-system-workspace... --frozen-lockfile | |
| - name: Install musl toolchain | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update -q | |
| sudo apt-get install -yq musl-tools | |
| - name: Build native binaries | |
| run: pnpm build:native | |
| - name: Verify binary metadata | |
| run: node ./scripts/verify-launcher-binary.mjs ${{ matrix.dir }} | |
| - name: Verify the built entry and flock | |
| run: | | |
| pnpm build:ts | |
| pnpm build:test-oracle | |
| pnpm test:flock | |
| pnpm test:packaging | |
| - name: Upload prebuild artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.artifact }} | |
| path: native/system/${{ matrix.dir }}/bin/** | |
| if-no-files-found: error | |
| retention-days: 7 | |
| pack: | |
| name: Pack npm tarballs | |
| needs: build-prebuilds | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: pnpm/action-setup@v4 | |
| with: | |
| package_json_file: package.json | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 24 | |
| cache: pnpm | |
| cache-dependency-path: pnpm-lock.yaml | |
| - name: Install dependencies | |
| run: pnpm install --filter @deepseek-ai/node-addon-system-workspace... --frozen-lockfile | |
| - name: Build TypeScript | |
| run: pnpm build:ts | |
| - name: Verify release version | |
| run: node ./scripts/verify-release.mjs | |
| env: | |
| RELEASE_PUBLISH: ${{ inputs.publish }} | |
| - name: Download prebuild artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| pattern: prebuild-* | |
| path: native/system/.release/prebuild-artifacts | |
| - name: Assemble and verify prebuilds | |
| run: node ./scripts/assemble-prebuilds.mjs .release/prebuild-artifacts | |
| - name: Verify release payload | |
| run: node ./scripts/verify-release.mjs --prebuilds | |
| env: | |
| RELEASE_PUBLISH: ${{ inputs.publish }} | |
| - name: Pack release tarballs | |
| run: node ./scripts/pack-release.mjs dist/npm | |
| - name: Verify packed install | |
| run: node ./scripts/verify-packed-install.mjs dist/npm | |
| env: | |
| NALR_REQUIRE_LANDLOCK: 1 | |
| - name: Upload npm tarballs | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: npm-tarballs | |
| path: native/system/dist/npm/* | |
| if-no-files-found: error | |
| retention-days: 7 | |
| publish: | |
| name: Publish to npm | |
| if: inputs.publish | |
| needs: pack | |
| runs-on: ubuntu-24.04 | |
| environment: npm-publish | |
| permissions: | |
| contents: read | |
| id-token: write | |
| steps: | |
| # The publish script is the only repository file this job needs, and it | |
| # imports nothing outside Node's builtins, so there is no install step. | |
| - uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: 24 | |
| registry-url: https://registry.npmjs.org | |
| - name: Download npm tarballs | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: npm-tarballs | |
| path: native/system/dist/npm | |
| - name: Configure npm token fallback | |
| env: | |
| NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
| run: | | |
| if [[ -n "$NPM_TOKEN" ]]; then | |
| echo "NODE_AUTH_TOKEN=$NPM_TOKEN" >> "$GITHUB_ENV" | |
| fi | |
| - name: Publish tarballs | |
| # Publication is decided per package against the registry, so re-running | |
| # this job over the same artifact skips what already landed instead of | |
| # failing on it. A bare `npm publish` loop could not be retried: the | |
| # registry answers a repeat of an existing version permanently. | |
| run: node ./scripts/publish-release.mjs dist/npm | |