Skip to content

macOS specific build tweaks #17

macOS specific build tweaks

macOS specific build tweaks #17

Workflow file for this run

---
name: Build NSO-RPC - x86_64
on:
release:
types:
- published
pull_request:
types:
- opened
- synchronize
jobs:
build-windows:
name: Build NSO-RPC - Windows
runs-on: windows-2022
strategy:
fail-fast: false
matrix:
pyqt_version:
- pyqt6
- pyqt5
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.11.4
- name: Build
run: |
python -m pip install ${{ matrix.pyqt_version }} &&
cd scripts &&
./build.bat
- name: Rename executable
if: matrix.pyqt_version == 'pyqt5'
run: mv client/dist/NSO-RPC.exe client/dist/NSO-RPC-qt5.exe
- name: Upload Build
if: github.event_name != 'pull_request'
uses: softprops/action-gh-release@v2
with:
files: |
client/dist/NSO-RPC*.exe
build-linux:
name: Build NSO-RPC - Linux
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.11.4
- name: Upload script
run: |
cd scripts &&
chmod +x linux.sh
continue-on-error: false
- name: Upload Build
if: github.event_name != 'pull_request'
uses: softprops/action-gh-release@v2
with:
files: scripts/linux.sh
build-macos:
name: Build NSO-RPC - MacOS
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: 3.11.4
architecture: x64
# We initially use `arch -x86_64` to ensure that we use an x86_64 version
# of Python, regardless of the host architecture.
# Subsequent invocations will all use the x86_64 `python3` binary within the venv.
- name: Build
run: >
arch -x86_64 /bin/bash ./scripts/build.sh
- name: Test
run: >
arch -x86_64 /bin/bash ./scripts/tests/macos_test.sh
- name: Create Distributions
run: >
cd ./client/dist &&
ln -s /Applications "Applications (admin)" &&
hdiutil create -fs HFS+ -srcfolder . -volname NSO-RPC mac-installer.dmg &&
zip -yr mac-portable.zip NSO-RPC.app/
- name: Upload Build
if: github.event_name != 'pull_request'
uses: softprops/action-gh-release@v2
with:
files: |
client/dist/mac-installer.dmg
client/dist/mac-portable.zip
build-universal2:
name: Build NSO-RPC - Universal2
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- name: Install Universal Python 3.11.4
run: >
curl https://www.python.org/ftp/python/3.11.4/python-3.11.4-macos11.pkg -o python-3.11.4-macos11.pkg &&
sudo installer -verbose -pkg python-3.11.4-macos11.pkg -target /
- name: Build
run: >
alias python3=python3.11 &&
bash ./scripts/macos-universal2/build.sh
- name: Test
run: >
bash ./scripts/tests/macos_test.sh
- name: Create Distributions
run: >
cd client/dist &&
ln -s /Applications "Applications (admin)" &&
hdiutil create -fs HFS+ -srcfolder . -volname NSO-RPC mac-universal2-installer.dmg &&
zip -yr mac-universal2-portable.zip NSO-RPC.app/
- name: Upload NSO-RPC Universal2 Build
if: github.event_name != 'pull_request'
uses: softprops/action-gh-release@v2
with:
files: |
client/dist/mac-universal2-installer.dmg
client/dist/mac-universal2-portable.zip
get-hashes:
name: Generate Checksums
runs-on: ubuntu-22.04
needs:
- build-windows
- build-linux
- build-macos
- build-universal2
if: github.event_name != 'pull_request'
steps:
- name: Generate checksums.txt
uses: MCJack123/ghaction-generate-release-hashes@v4
with:
hash-type: sha256
file-name: checksums.txt
get-assets: true
- uses: softprops/action-gh-release@v2
with:
files: checksums.txt