Skip to content

Build PRF Binaries

Build PRF Binaries #5

Workflow file for this run

# This workflow builds the binaries for Pidgeon Render Farm
name: Build PRF Binaries
on:
#label:
# types:
# - created
workflow_dispatch:
inputs:
Windows:
type: boolean
description: 'Build Windows x64'
required: true
default: true
Windows_ARM:
type: boolean
description: 'Build Windows ARM'
required: true
default: false
Linux:
type: boolean
description: 'Build Linux x64'
required: true
default: true
Linux_ARM:
type: boolean
description: 'Build Linux ARM'
required: true
default: false
Mac:
type: boolean
description: 'Build MacOS x64'
required: true
default: false
Mac_ARM:
type: boolean
description: 'Build MacOS ARM'
required: true
default: false
jobs:
Build:
# use Ubuntu as OS
name: Build PRF Binaries
runs-on: ubuntu-latest
steps:
# Using dotnet 6
- uses: actions/checkout@v3
- name: Setup .NET
uses: actions/setup-dotnet@v3
with:
dotnet-version: 6.0.x
# Build Windows x64 Client
- name: Build Windows x64 - Client
if: inputs.Windows
run: dotnet publish ./Client/Client.csproj --configuration Release --self-contained true -p:PublishSingleFile=true --runtime win-x64
- name: Move Windows bins - Client
if: inputs.Windows
run: mv ./Client/bin/Release/net6.0/win-x64/publish ./PRF_Client_Windows
- name: Copy LICENSE to Windows - Client
if: inputs.Windows
run: cp LICENSE ./PRF_Client_Windows
- name: Copy Get_Engines to Windows - Client
if: inputs.Windows
run: cp ./Client/Get_Engines.py ./PRF_Client_Windows
- name: Copy SID_Temporal_Bridge to Windows - Client
if: inputs.Windows
run: cp ./Client/SID_Temporal_Bridge.py ./PRF_Client_Windows
- name: Compress Windows - Client
if: inputs.Windows
run: zip -r PRF_Client_Windows.zip PRF_Client_Windows
# Build Windows ARM Client
- name: Build Windows ARM - Client
if: inputs.Windows_ARM
run: dotnet publish ./Client/Client.csproj --configuration Release --self-contained true -p:PublishSingleFile=true --runtime win-arm
- name: Move Windows ARM bins - Client
if: inputs.Windows_ARM
run: mv ./Client/bin/Release/net6.0/win-arm/publish ./PRF_Client_Windows_ARM
- name: Copy LICENSE to Windows ARM - Client
if: inputs.Windows_ARM
run: cp LICENSE ./PRF_Client_Windows_ARM
- name: Copy Get_Engines to Windows ARM - Client
if: inputs.Windows_ARM
run: cp ./Client/Get_Engines.py ./PRF_Client_Windows_ARM
- name: Copy SID_Temporal_Bridge to Windows ARM - Client
if: inputs.Windows_ARM
run: cp ./Client/SID_Temporal_Bridge.py ./PRF_Client_Windows_ARM
- name: Compress Windows ARM - Client
if: inputs.Windows_ARM
run: zip -r PRF_Client_Windows_ARM.zip PRF_Client_Windows_ARM
# Build Linux x64 client
- name: Build Linux x64 - Client
if: inputs.Linux
run: dotnet publish ./Client/Client.csproj --configuration Release --self-contained true -p:PublishSingleFile=true --runtime linux-x64
- name: Move Linux bins - Client
if: inputs.Linux
run: mv ./Client/bin/Release/net6.0/linux-x64/publish ./PRF_Client_Linux
- name: Copy LICENSE to Linux - Client
if: inputs.Linux
run: cp LICENSE ./PRF_Client_Linux
- name: Copy Get_Engines to Linux - Client
if: inputs.Linux
run: cp ./Client/Get_Engines.py ./PRF_Client_Linux
- name: Copy SID_Temporal_Bridge to Linux - Client
if: inputs.Linux
run: cp ./Client/SID_Temporal_Bridge.py ./PRF_Client_Linux
- name: Compress Linux - Client
if: inputs.Linux
run: zip -r PRF_Client_Linux.zip PRF_Client_Linux
# Build Linux ARM Client
- name: Build Linux ARM - Client
if: inputs.Linux_ARM
run: dotnet publish ./Client/Client.csproj --configuration Release --self-contained true -p:PublishSingleFile=true --runtime linux-arm
- name: Move Linux ARM bins - Client
if: inputs.Linux_ARM
run: mv ./Client/bin/Release/net6.0/linux-arm/publish ./PRF_Client_Linux_ARM
- name: Copy LICENSE to Linux ARM - Client
if: inputs.Linux_ARM
run: cp LICENSE ./PRF_Client_Linux_ARM
- name: Copy Get_Engines to Linux ARM - Client
if: inputs.Linux_ARM
run: cp ./Client/Get_Engines.py ./PRF_Client_Linux_ARM
- name: Copy SID_Temporal_Bridge to Linux ARM - Client
if: inputs.Linux_ARM
run: cp ./Client/SID_Temporal_Bridge.py ./PRF_Client_Linux_ARM
- name: Compress Linux ARM - Client
if: inputs.Linux_ARM
run: zip -r PRF_Client_Linux_ARM.zip PRF_Client_Linux_ARM
# Build Mac x64 Client
- name: Build Mac x64 - Client
if: inputs.Mac
run: dotnet publish ./Client/Client.csproj --configuration Release --self-contained true -p:PublishSingleFile=true --runtime osx-x64
- name: Move Mac bins - Client
if: inputs.Mac
run: mv ./Client/bin/Release/net6.0/osx-x64/publish ./PRF_Client_Mac
- name: Copy LICENSE to Mac - Client
if: inputs.Mac
run: cp LICENSE ./PRF_Client_Mac
- name: Copy Get_Engines to Mac - Client
if: inputs.Mac
run: cp ./Client/Get_Engines.py ./PRF_Client_Mac
- name: Copy SID_Temporal_Bridge to Mac - Client
if: inputs.Mac
run: cp ./Client/SID_Temporal_Bridge.py ./PRF_Client_Mac
- name: Compress Mac - Client
if: inputs.Mac
run: zip -r PRF_Client_Mac.zip PRF_Client_Mac
# Build Mac ARM Client
- name: Build Mac ARM - Client
if: inputs.Mac_ARM
run: dotnet publish ./Client/Client.csproj --configuration Release --self-contained true -p:PublishSingleFile=true --runtime osx-arm64
- name: Move Mac ARM bins - Client
if: inputs.Mac_AMR
run: mv ./Client/bin/Release/net6.0/osx-arm64/publish ./PRF_Client_Mac_ARM
- name: Copy LICENSE to Mac ARM - Client
if: inputs.Mac_ARM
run: cp LICENSE ./PRF_Client_Mac_ARM
- name: Copy Get_Engines to Mac ARM - Client
if: inputs.Mac_ARM
run: cp ./Client/Get_Engines.py ./PRF_Client_Mac_ARM
- name: Copy SID_Temporal_Bridge to Mac ARM - Client
if: inputs.Mac_ARM
run: cp ./Client/SID_Temporal_Bridge.py ./PRF_Client_Mac_ARM
- name: Compress Mac ARM - Client
if: inputs.Mac_ARM
run: zip -r PRF_Client_Mac_ARM.zip PRF_Client_Mac_ARM
# Build Master
# Build Windows x64 Master
- name: Build Windows x64 - Master
if: inputs.Windows
run: dotnet publish ./Master/Master.csproj --configuration Release --self-contained true -p:PublishSingleFile=true --runtime win-x64
- name: Move Windows bins - Master
if: inputs.Windows
run: mv ./Master/bin/Release/net6.0/win-x64/publish ./PRF_Master_Windows
- name: Copy LICENSE to Windows - Master
if: inputs.Windows
run: cp LICENSE ./PRF_Master_Windows
- name: Copy BPY to Windows - Master
if: inputs.Windows
run: cp ./Master/BPY.py ./PRF_Master_Windows
- name: Copy SID_Temporal_Bridge to Windows - Master
if: inputs.Windows
run: cp ./Master/SID_Temporal_Bridge.py ./PRF_Master_Windows
- name: Copy Get_Version to Windows - Master
if: inputs.Windows
run: cp ./Master/Get_Version.py ./PRF_Master_Windows
- name: Compress Windows - Master
if: inputs.Windows
run: zip -r PRF_Master_Windows.zip PRF_Master_Windows
# Build Windows ARM Master
- name: Build Windows ARM - Master
if: inputs.Windows_ARM
run: dotnet publish ./Master/Master.csproj --configuration Release --self-contained true -p:PublishSingleFile=true --runtime win-arm
- name: Move Windows ARM bins - Master
if: inputs.Windows_ARM
run: mv ./Master/bin/Release/net6.0/win-arm/publish ./PRF_Master_Windows_ARM
- name: Copy LICENSE to Windows ARM - Master
if: inputs.Windows_ARM
run: cp LICENSE ./PRF_Master_Windows_ARM
- name: Copy BPY to Windows ARM - Master
if: inputs.Windows_ARM
run: cp ./Master/BPY.py ./PRF_Master_Windows_ARM
- name: Copy SID_Temporal_Bridge to Windows ARM - Master
if: inputs.Windows_ARM
run: cp ./Master/SID_Temporal_Bridge.py ./PRF_Master_Windows_ARM
- name: Copy Get_Version to Windows ARM - Master
if: inputs.Windows_ARM
run: cp ./Master/Get_Version.py ./PRF_Master_Windows_ARM
- name: Compress Windows ARM - Master
if: inputs.Windows_ARM
run: zip -r PRF_Master_Windows_ARM.zip PRF_Master_Windows_ARM
# Build Linux x64 Master
- name: Build Linux x64 - Master
if: inputs.Linux
run: dotnet publish ./Master/Master.csproj --configuration Release --self-contained true -p:PublishSingleFile=true --runtime linux-x64
- name: Move Linux bins - Master
if: inputs.Linux
run: mv ./Master/bin/Release/net6.0/linux-x64/publish ./PRF_Master_Linux
- name: Copy LICENSE to Linux - Master
if: inputs.Linux
run: cp LICENSE ./PRF_Master_Linux
- name: Copy BPY to Linux - Master
if: inputs.Linux
run: cp ./Master/BPY.py ./PRF_Master_Linux
- name: Copy SID_Temporal_Bridge to Linux - Master
if: inputs.Linux
run: cp ./Master/SID_Temporal_Bridge.py ./PRF_Master_Linux
- name: Copy Get_Version to Linux - Master
if: inputs.Linux
run: cp ./Master/Get_Version.py ./PRF_Master_Linux
- name: Compress Linux - Master
if: inputs.Linux
run: zip -r PRF_Master_Linux.zip PRF_Master_Linux
# Build Linux ARM Master
- name: Build Linux ARM - Master
if: inputs.Linux_ARM
run: dotnet publish ./Master/Master.csproj --configuration Release --self-contained true -p:PublishSingleFile=true --runtime linux-arm
- name: Move Linux ARM bins - Master
if: inputs.Linux_ARM
run: mv ./Master/bin/Release/net6.0/linux-arm/publish ./PRF_Master_Linux_ARM
- name: Copy LICENSE to Linux ARM - Master
if: inputs.Linux_ARM
run: cp LICENSE ./PRF_Master_Linux_ARM
- name: Copy BPY to Linux ARM - Master
if: inputs.Linux_ARM
run: cp ./Master/BPY.py ./PRF_Master_Linux_ARM
- name: Copy SID_Temporal_Bridge to Linux ARM - Master
if: inputs.Linux_ARM
run: cp ./Master/SID_Temporal_Bridge.py ./PRF_Master_Linux_ARM
- name: Copy Get_Version to Linux ARM - Master
if: inputs.Linux_ARM
run: cp ./Master/Get_Version.py ./PRF_Master_Linux_ARM
- name: Compress Linux ARM - Master
if: inputs.Linux_ARM
run: zip -r PRF_Master_Linux_ARM.zip PRF_Master_Linux_ARM
# Build Mac x64 Master
- name: Build Mac x64 - Master
if: inputs.Mac
run: dotnet publish ./Master/Master.csproj --configuration Release --self-contained true -p:PublishSingleFile=true --runtime osx-x64
- name: Move Mac bins - Master
if: inputs.Mac
run: mv ./Master/bin/Release/net6.0/osx-x64/publish ./PRF_Master_Mac
- name: Copy LICENSE to Mac - Master
if: inputs.Mac
run: cp LICENSE ./PRF_Master_Mac
- name: Copy BPY to Mac - Master
if: inputs.Mac
run: cp ./Master/BPY.py ./PRF_Master_Mac
- name: Copy SID_Temporal_Bridge to Mac - Master
if: inputs.Mac
run: cp ./Master/SID_Temporal_Bridge.py ./PRF_Master_Mac
- name: Copy Get_Version to Mac - Master
if: inputs.Mac
run: cp ./Master/Get_Version.py ./PRF_Master_Mac
- name: Compress Mac - Master
if: inputs.Mac
run: zip -r PRF_Master_Mac.zip PRF_Master_Mac
# Build Mac ARM Master
- name: Build Mac ARM - Master
if: inputs.Mac_ARM
run: dotnet publish ./Master/Master.csproj --configuration Release --self-contained true -p:PublishSingleFile=true --runtime osx-arm64
- name: Move Mac ARM bins - Master
if: inputs.Mac_ARM
run: mv ./Master/bin/Release/net6.0/osx-arm64/publish ./PRF_Master_Mac_ARM
- name: Copy LICENSE to Mac ARM - Master
if: inputs.Mac_ARM
run: cp LICENSE ./PRF_Master_Mac_ARM
- name: Copy BPY to Mac ARM - Master
if: inputs.Mac_ARM
run: cp ./Master/BPY.py ./PRF_Master_Mac_ARM
- name: Copy SID_Temporal_Bridge to Mac ARM - Master
if: inputs.Mac_ARM
run: cp ./Master/SID_Temporal_Bridge.py ./PRF_Master_Mac_ARM
- name: Copy Get_Version to Mac ARM - Master
if: inputs.Mac_ARM
run: cp ./Master/Get_Version.py ./PRF_Master_Mac_ARM
- name: Compress Mac ARM - Master
if: inputs.Mac_ARM
run: zip -r PRF_Master_Mac_ARM.zip PRF_Master_Mac_ARM
# Add binaries to a draft release
# If a binary/zip file is not found it is not included
- name: Release
uses: softprops/action-gh-release@v1
with:
files: |
PRF_Client_Windows.zip
PRF_Client_Windows_ARM.zip
PRF_Client_Linux.zip
PRF_Client_Linux_ARM.zip
PRF_Client_Mac.zip
PRF_Client_Mac_ARM.zip
PRF_Master_Windows.zip
PRF_Master_Windows_ARM.zip
PRF_Master_Linux.zip
PRF_Master_Linux_ARM.zip
PRF_Master_Mac.zip
PRF_Master_Mac_ARM.zip
draft: true