macOS specific build tweaks #17
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
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 |