Skip to content

ci: native binaries

ci: native binaries #4

Workflow file for this run

name: Build, Test and Publish Pyinstaller Binaries
on:
pull_request:
workflow_call:
inputs:
is_production:
required: true
type: boolean
jobs:
build-binaries-ubuntu:
runs-on: ubuntu-latest
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Install poetry
run: pipx install poetry
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: "3.12"
cache: "poetry"
- name: Install dependencies
run: poetry install --no-interaction
- name: Build Executable (Linux)
run: |
poetry run poe package_unix
- name: Test Executable
run: |
ls -l dist
./dist/algokit --help
- name: Publish Executable
if: ${{ github.event.inputs.is_production }}
uses: actions/upload-artifact@v2
with:
name: algokit-cli-ubuntu-py3.12
path: dist
build-binaries-windows:
runs-on: windows-latest
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Install poetry
run: pipx install poetry
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: "3.12"
cache: "poetry"
- name: Install dependencies
run: poetry install --no-interaction
- name: Install setuptools (3.12 only)
run: poetry add setuptools
- name: Build Executable (Windows)
run: |
poetry run poe package_windows
- name: Test Executable
run: |
ls -l dist
./dist/algokit.exe --help
- name: Publish Executable
if: ${{ github.event.inputs.is_production }}
uses: actions/upload-artifact@v2
with:
name: algokit-cli-windows-py3.12
path: dist
build-binaries-macos:
runs-on: macos-latest
steps:
- name: Checkout source code
uses: actions/checkout@v3
- name: Install poetry
run: pipx install poetry
- name: Set up Python 3.12
uses: actions/setup-python@v4
with:
python-version: "3.12"
cache: "poetry"
- name: Install dependencies
run: poetry install --no-interaction
- name: Build Executable (Darwin)
run: |
poetry run poe package_unix
- name: Test Executable
run: |
ls -l dist
./dist/algokit --help
- name: Publish Executable
if: ${{ github.event.inputs.is_production }}
uses: actions/upload-artifact@v2
with:
name: algokit-cli-macos-py3.12
path: dist