horus-gui/.github/workflows/pull-request.yml

183 wiersze
4.8 KiB
YAML

name: Build
on:
push:
branches: ["master"]
pull_request:
branches: ["master"]
jobs:
build-windows:
runs-on: [windows-latest]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Checkout horusdemodlib
uses: actions/checkout@v4
with:
repository: "projecthorus/horusdemodlib"
ref: "master"
path: "horusdemodlib"
- name: Build horusdemodlib
run: |
cd horusdemodlib
mkdir build
cd build
cmake .. -G "MinGW Makefiles"
mingw32-make
- uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip' # caching pip dependencies
- name: Install pyAudio wheel
run: pip install pyaudio
- name: Install other dependencies
run: pip install -r requirements.txt
- name: Install pyinstaller
run: pip install pyinstaller
- name: Prep file locations
shell: bash
run: |
mkdir -p dist
cp horusdemodlib/build/src/libhorus.dll .
cp "C:\Program Files\Git\mingw64\bin\libgcc_s_seh-1.dll" .
cp "C:\Program Files\Git\mingw64\bin\libstdc++-6.dll" .
cp "C:\Program Files\Git\mingw64\bin\libwinpthread-1.dll" .
- name: Run pyinstaller
run: pyinstaller horus-gui_win.spec
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: horus-gui_WIN64.zip
path: dist/horus-gui.exe
retention-days: 2
build-osx:
runs-on: [macos-14]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Checkout horusdemodlib
uses: actions/checkout@v4
with:
repository: "projecthorus/horusdemodlib"
ref: "master"
path: "horusdemodlib"
- name: Build horusdemodlib
run: |
cd horusdemodlib
mkdir build
cd build
cmake ..
make
- uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip' # caching pip dependencies
- name: Install Homebrew dependencies
run: brew install portaudio
- name: Install pyAudio wheel
run: pip install pyaudio
- name: Install other dependencies
run: pip install -r requirements.txt
- name: Install pyinstaller
run: pip install pyinstaller
- name: Prep file locations
shell: bash
run: |
mkdir -p dist
cp horusdemodlib/build/src/libhorus.dylib .
- name: Run pyinstaller
run: pyinstaller horus-gui_osx_runner.spec
- name: Create the DMG file
run: hdiutil create -format UDZO -srcfolder dist/horus-gui.app dist/horus-gui_OSX-M1.dmg
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: horus-gui_OSX-M1.zip
path: dist/horus-gui_OSX-M1.dmg
retention-days: 2
# Currently having issues with portaudio and these builds...
build-osx-intel:
runs-on: [macos-13]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Checkout horusdemodlib
uses: actions/checkout@v4
with:
repository: "projecthorus/horusdemodlib"
ref: "master"
path: "horusdemodlib"
- name: Build horusdemodlib
run: |
cd horusdemodlib
mkdir build
cd build
cmake ..
make
- uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: 'pip' # caching pip dependencies
- name: Install Homebrew dependencies
run: brew install portaudio
- name: Install pyAudio wheel
run: pip install pyaudio
- name: Install other dependencies
run: pip install -r requirements.txt
- name: Install pyinstaller
run: pip install pyinstaller
- name: Prep file locations
shell: bash
run: |
mkdir -p dist
cp horusdemodlib/build/src/libhorus.dylib .
- name: Run pyinstaller
run: pyinstaller horus-gui_osx_runner.spec
- name: Create the DMG file
run: hdiutil create -format UDZO -srcfolder dist/horus-gui.app dist/horus-gui_OSX-Intel.dmg
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: horus-gui_OSX-Intel.zip
path: dist/horus-gui_OSX-Intel.dmg
retention-days: 2