Add sanity check to executable CD + more (#3190)

Building executables without any testing is quite sketchy, let's at
least verify they won't crash on startup and format Black's own
codebase.

Also replaced "binaries" with "executables" since it's clearer and
won't be confused with mypyc.

Finally, I added colorama so all Windows users can get colour.
This commit is contained in:
Richard Si 2022-07-29 23:38:39 -04:00 committed by GitHub
parent d85cf00ee8
commit eaa048925e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,16 +1,14 @@
name: Upload self-contained binaries name: Publish executables
on: on:
release: release:
types: [published] types: [published]
permissions: permissions:
contents: read contents: write # actions/upload-release-asset needs this.
jobs: jobs:
build: build:
permissions:
contents: write # for actions/upload-release-asset to upload release asset
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
strategy: strategy:
fail-fast: false fail-fast: false
@ -38,15 +36,21 @@ jobs:
with: with:
python-version: "*" python-version: "*"
- name: Install dependencies - name: Install Black and PyInstaller
run: | run: |
python -m pip install --upgrade pip wheel setuptools python -m pip install --upgrade pip wheel
python -m pip install . python -m pip install .[colorama]
python -m pip install pyinstaller 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' src/black/__main__.py
- name: Quickly test executable
run: | run: |
python -m PyInstaller -F --name ${{ matrix.asset_name }} --add-data 'src/blib2to3${{ matrix.pathsep }}blib2to3' src/black/__main__.py ./dist/${{ matrix.asset_name }} --version
./dist/${{ matrix.asset_name }} src --verbose
- name: Upload binary as release asset - name: Upload binary as release asset
uses: actions/upload-release-asset@v1 uses: actions/upload-release-asset@v1