-name: Upload self-contained binaries
+name: Publish executables
on:
release:
types: [published]
+permissions:
+ contents: write # actions/upload-release-asset needs this.
+
jobs:
build:
runs-on: ${{ matrix.os }}
pathsep: ";"
asset_name: black_windows.exe
executable_mime: "application/vnd.microsoft.portable-executable"
- platform: windows
- os: ubuntu-20.04
pathsep: ":"
asset_name: black_linux
executable_mime: "application/x-executable"
- platform: unix
- os: macos-latest
pathsep: ":"
asset_name: black_macos
executable_mime: "application/x-mach-binary"
- platform: macos
steps:
- - uses: actions/checkout@v2
+ - uses: actions/checkout@v4
- name: Set up latest Python
- uses: actions/setup-python@v2
+ uses: actions/setup-python@v4
with:
python-version: "*"
- - name: Install dependencies
+ - name: Install Black and PyInstaller
run: |
- python -m pip install --upgrade pip wheel setuptools
- python -m pip install .
+ python -m pip install --upgrade pip wheel
+ python -m pip install .[colorama]
python -m pip install pyinstaller
- - name: Build binary
+ - name: Build executable with PyInstaller
run: >
python -m PyInstaller -F --name ${{ matrix.asset_name }} --add-data
- 'src/blib2to3${{ matrix.pathsep }}blib2to3' --hidden-import platformdirs.${{
- matrix.platform }} src/black/__main__.py
+ '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