name: Remote Boss Platforms on: workflow_dispatch: inputs: version: description: Boss build version required: true type: string release_tag: description: Draft GitHub release tag used as the Boss transport bucket required: true type: string release_title: description: Human-readable title for the draft release required: false type: string concurrency: group: remote-boss-${{ github.ref }}-${{ inputs.release_tag }} cancel-in-progress: false env: PNPM_VERSION: "10.24.0" NODE_VERSION: "22" jobs: build-windows: name: Boss Windows Installer runs-on: windows-latest permissions: contents: write steps: - uses: actions/checkout@v4 - uses: pnpm/action-setup@v4 with: version: ${{ env.PNPM_VERSION }} - uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} cache: pnpm - run: pnpm install --frozen-lockfile - name: Build Boss edition run: node boss-build/build-boss-edition.mjs --platform=win --version=${{ inputs.version }} shell: bash env: CSC_LINK: ${{ secrets.WIN_CERTIFICATE_P12_BASE64 }} CSC_KEY_PASSWORD: ${{ secrets.WIN_CERTIFICATE_PASSWORD }} - name: Upload release files shell: bash env: GH_TOKEN: ${{ github.token }} RELEASE_TAG: ${{ inputs.release_tag }} RELEASE_TITLE: ${{ inputs.release_title }} run: | set -euo pipefail gh release view "$RELEASE_TAG" >/dev/null 2>&1 || \ gh release create "$RELEASE_TAG" \ --draft \ --prerelease \ --title "${RELEASE_TITLE:-Boss Release $GITHUB_RUN_ID}" \ --notes "Temporary Boss transport generated by remote-boss-platforms.yml." \ --target "$GITHUB_SHA" shopt -s nullglob files=( boss-build/build/out/*.exe boss-build/build/out/*.blockmap ) if [ ${#files[@]} -eq 0 ]; then echo "No Boss Windows release files found." exit 1 fi gh release upload "$RELEASE_TAG" "${files[@]}" --clobber