Skip to content

Commit

Permalink
Add sanity check to executable CD + more (psf#3190)
Browse files Browse the repository at this point in the history
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.
  • Loading branch information
ichard26 authored and cibinmathew committed Aug 13, 2022
1 parent a11ce27 commit 303e005
Showing 1 changed file with 13 additions and 9 deletions.
22 changes: 13 additions & 9 deletions .github/workflows/upload_binary.yml
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
name: Upload self-contained binaries
name: Publish executables

on:
release:
types: [published]

permissions:
contents: read
contents: write # actions/upload-release-asset needs this.

jobs:
build:
permissions:
contents: write # for actions/upload-release-asset to upload release asset
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
Expand Down Expand Up @@ -38,15 +36,21 @@ jobs:
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' src/black/__main__.py
- name: Quickly test executable
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
uses: actions/upload-release-asset@v1
Expand Down

0 comments on commit 303e005

Please sign in to comment.