name: Publish npm on: workflow_dispatch: inputs: tag: description: npm dist-tag to publish required: true default: latest skip_tests: description: Skip tests after build required: true default: "false" type: choice options: - "false" - "true" permissions: contents: read id-token: write jobs: build-signed-cep: name: Build signed CEP package runs-on: windows-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - name: Build and verify signed ZXP shell: pwsh run: ./scripts/build-signed-cep.ps1 - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: name: signed-cep path: artifacts/MCPBridgeCEP.zxp if-no-files-found: error publish: name: Publish package needs: build-signed-cep runs-on: ubuntu-latest steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8 with: name: signed-cep path: artifacts - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7 with: node-version: 24 registry-url: https://registry.npmjs.org/ package-manager-cache: false - run: npm install --global npm@latest - run: npm ci - run: npm run premiere:docs-inventory:check - run: npm run build - if: ${{ inputs.skip_tests != 'true' }} run: npm test - run: npm run pack:check - name: Fail if version is already published shell: bash run: | VERSION="$(node -p "require('./package.json').version")" if npm view "premiere-pro-mcp@${VERSION}" version >/dev/null 2>&1; then echo "premiere-pro-mcp@${VERSION} is already published." exit 1 fi - name: Publish to npm run: npm publish --provenance --access public --tag "${{ inputs.tag }}"