60 lines
1.7 KiB
YAML
60 lines
1.7 KiB
YAML
name: pyinstaller
|
|
|
|
on: [push]
|
|
|
|
jobs:
|
|
build:
|
|
strategy:
|
|
matrix:
|
|
os: [ubuntu-latest, windows-latest, macos-latest]
|
|
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.12'
|
|
- name: prep
|
|
shell: bash
|
|
run: |
|
|
python -m pip install --upgrade pip
|
|
python -m pip install pipenv pyinstaller==6.3.0
|
|
pipenv install
|
|
rm -rf build dist
|
|
- name: build
|
|
shell: bash
|
|
run: |
|
|
echo "RUNNER_OS: $RUNNER_OS"
|
|
# get path to venv site-packages (for blake3)
|
|
pipenv run python -c "import site; print(site.getsitepackages())"
|
|
SITEPKG=$(pipenv run python -c "import site; print(site.getsitepackages()[-1])")
|
|
pipenv run pyinstaller run.py --hidden-import chkbit --hidden-import chkbit_cli --onefile --name chkbit --console --paths $SITEPKG
|
|
cat build/chkbit/warn-chkbit.txt
|
|
cd dist; ls -l
|
|
if [ "$RUNNER_OS" == "Windows" ]; then
|
|
7z a -tzip chkbit.zip chkbit.exe
|
|
else
|
|
tar -czf chkbit.tar.gz chkbit
|
|
fi
|
|
- name: artifact
|
|
uses: actions/upload-artifact@v3
|
|
if: runner.os == 'Linux'
|
|
with:
|
|
name: chkbit-linux_amd64.tar.gz
|
|
path: dist/chkbit.tar.gz
|
|
- name: artifact
|
|
uses: actions/upload-artifact@v3
|
|
if: runner.os == 'macOS'
|
|
with:
|
|
name: chkbit-macos_amd64.tar.gz
|
|
path: dist/chkbit.tar.gz
|
|
- name: artifact
|
|
uses: actions/upload-artifact@v3
|
|
if: runner.os == 'Windows'
|
|
with:
|
|
name: chkbit-windows_amd64.zip
|
|
path: dist/chkbit.zip
|
|
|
|
|