name: Build Premiere UXP CCX on: workflow_dispatch: inputs: distribution_channel: description: Distribution channel for the generated CCX required: true default: direct type: choice options: - direct - marketplace marketplace_plugin_id: description: Adobe Developer Distribution plugin ID (required only for marketplace) required: false type: string release: types: [published] permissions: contents: write jobs: package: name: Validate and package UXP CCX runs-on: ubuntu-latest env: GITHUB_TOKEN: ${{ github.token }} UXP_DISTRIBUTION_CHANNEL: ${{ inputs.distribution_channel || 'direct' }} UXP_MARKETPLACE_PLUGIN_ID: ${{ inputs.marketplace_plugin_id }} steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 with: ref: ${{ github.event_name == 'release' && github.event.release.tag_name || github.sha }} - uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7 with: node-version: 24 package-manager-cache: false - run: npm ci - run: npm run check - name: Verify release identity if: ${{ github.event_name == 'release' }} env: RELEASE_TAG: ${{ github.event.release.tag_name }} run: node scripts/verify-release-tag.mjs - run: node scripts/validate-distribution.mjs --uxp - run: node scripts/build-uxp-ccx.mjs - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7 with: name: premiere-pro-mcp-uxp-${{ inputs.distribution_channel || 'direct' }} path: artifacts/*.ccx if-no-files-found: error - name: Attach direct CCX to release if: ${{ github.event_name == 'release' }} env: GH_TOKEN: ${{ github.token }} run: >- gh release upload "${{ github.event.release.tag_name }}" artifacts/*-direct.ccx --clobber