macOS specific build tweaks #16
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/[email protected] | |
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/[email protected] | |
with: | |
files: scripts/linux.sh | |
build-macos: | |
name: Build NSO-RPC - MacOS | |
# We cannot use arm64 macOS runners until setup-python permits specifying an architecture. | |
# See also: https://github.com/actions/setup-python/issues/547 | |
runs-on: macos-12 | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: 3.11.4 | |
# 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/[email protected] | |
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 Python 3.11.4 and build NSO-RPC | |
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/[email protected] | |
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/[email protected] | |
with: | |
files: checksums.txt |