X-Git-Url: https://git.madduck.net/etc/vim.git/blobdiff_plain/74e51e6a829d48db1b4da4f1eac935647d1655cc..cf4cc2981900565ab931aada176abf08a1f5782d:/.github/workflows/upload_binary.yml

diff --git a/.github/workflows/upload_binary.yml b/.github/workflows/upload_binary.yml
index 46d92ab..22535a6 100644
--- a/.github/workflows/upload_binary.yml
+++ b/.github/workflows/upload_binary.yml
@@ -1,44 +1,56 @@
-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 }}
     strategy:
       fail-fast: false
       matrix:
-        python-version: [3.7]
-        os: [ubuntu-16.04, windows-2019]
+        os: [windows-2019, ubuntu-20.04, macos-latest]
         include:
           - os: windows-2019
             pathsep: ";"
-            executable_suffix: ".exe"
+            asset_name: black_windows.exe
             executable_mime: "application/vnd.microsoft.portable-executable"
-          - os: ubuntu-16.04
+          - os: ubuntu-20.04
             pathsep: ":"
-            executable_suffix: ".elf"
+            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@v2
+      - uses: actions/checkout@v3
 
-      - name: Set up Python ${{ matrix.python-version }}
-        uses: actions/setup-python@v2
+      - name: Set up latest Python
+        uses: actions/setup-python@v4
         with:
-          python-version: ${{ matrix.python-version }}
+          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 black${{ matrix.executable_suffix }} --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
@@ -46,6 +58,6 @@ jobs:
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
         with:
           upload_url: ${{ github.event.release.upload_url }}
-          asset_path: dist/black${{ matrix.executable_suffix }}
-          asset_name: black${{ matrix.executable_suffix }}
+          asset_path: dist/${{ matrix.asset_name }}
+          asset_name: ${{ matrix.asset_name }}
           asset_content_type: ${{ matrix.executable_mime }}