+++ /dev/null
-name: Publish executables
-
-on:
- release:
- types: [published]
-
-permissions:
- contents: write # actions/upload-release-asset needs this.
-
-jobs:
- build:
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [windows-2019, ubuntu-20.04, macos-latest]
- include:
- - os: windows-2019
- pathsep: ";"
- asset_name: black_windows.exe
- executable_mime: "application/vnd.microsoft.portable-executable"
- - os: ubuntu-20.04
- pathsep: ":"
- asset_name: black_linux
- executable_mime: "application/x-executable"
- - os: macos-latest
- pathsep: ":"
- asset_name: black_macos
- executable_mime: "application/x-mach-binary"
-
- steps:
- - uses: actions/checkout@v4
-
- - name: Set up latest Python
- uses: actions/setup-python@v4
- with:
- python-version: "*"
-
- - name: Install Black and PyInstaller
- run: |
- python -m pip install --upgrade pip wheel
- python -m pip install .[colorama]
- python -m pip install 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
-
- - name: Upload binary as release asset
- uses: actions/upload-release-asset@v1
- env:
- GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- with:
- upload_url: ${{ github.event.release.upload_url }}
- asset_path: dist/${{ matrix.asset_name }}
- asset_name: ${{ matrix.asset_name }}
- asset_content_type: ${{ matrix.executable_mime }}