| name: publish binaries |
| |
| on: |
| release: |
| types: [published] |
| workflow_dispatch: |
| inputs: |
| tag: |
| required: true |
| type: string |
| |
| permissions: {} |
| |
| jobs: |
| publish: |
| name: publish (${{ matrix.os }}) |
| runs-on: ${{ matrix.os }} |
| strategy: |
| fail-fast: false |
| matrix: |
| include: |
| - os: windows-latest |
| pathsep: ";" |
| asset_name: black_windows.exe |
| executable_mime: "application/vnd.microsoft.portable-executable" |
| - os: windows-11-arm |
| pathsep: ";" |
| asset_name: black_windows-arm.exe |
| executable_mime: "application/vnd.microsoft.portable-executable" |
| - os: ubuntu-latest |
| pathsep: ":" |
| asset_name: black_linux |
| executable_mime: "application/x-executable" |
| - os: ubuntu-24.04-arm |
| pathsep: ":" |
| asset_name: black_linux-arm |
| executable_mime: "application/x-executable" |
| - os: macos-latest |
| pathsep: ":" |
| asset_name: black_macos |
| executable_mime: "application/x-mach-binary" |
| permissions: |
| contents: write # Needed to upload to release |
| |
| steps: |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 |
| with: |
| persist-credentials: false |
| |
| - name: Set up Python |
| uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0 |
| with: |
| python-version: "3.14" |
| pip-version: "25.3" |
| pip-install: .[colorama] --group pyinstaller |
| |
| - name: Build executable with PyInstaller |
| run: |
| python -m PyInstaller -F --name ${{ matrix.asset_name }} --add-data |
| 'src/blib2to3${{ matrix.pathsep }}blib2to3' src/black/__main__.py |
| |
| - name: Quickly test executable |
| run: | |
| ./dist/${{ matrix.asset_name }} --version |
| ./dist/${{ matrix.asset_name }} src --verbose |
| |
| - run: gh release upload "$tag" dist/${{ matrix.asset_name }} |
| shell: bash |
| env: |
| GH_TOKEN: ${{ github.token }} |
| tag: ${{ inputs.tag || github.event.release.tag_name }} |