name: Build Unreal Engine Project description: Build, cook, and package an Unreal Engine project inputs: platform: required: true ue_path: required: true project_file: required: true configuration: required: true output: required: true runs: using: "composite" steps: - name: Extract project name id: extract shell: bash run: | echo "project_name=$(basename "${{ inputs.project_file }}" .uproject)" >> "$GITHUB_OUTPUT" - name: Build Editor (if not Shipping) if: ${{ inputs.configuration != 'Shipping' }} shell: bash run: | "${{ inputs.ue_path }}/Engine/Build/BatchFiles/Build.sh" \ "${{ steps.extract.outputs.project_name }}Editor" \ "${{ inputs.platform }}" \ "${{ inputs.configuration }}" \ -project="${{ inputs.project_file }}" \ -waitmutex \ -targetplatform=${{ inputs.platform }} - name: Build Game shell: bash run: | "${{ inputs.ue_path }}/Engine/Build/BatchFiles/Build.sh" \ "${{ steps.extract.outputs.project_name }}" \ "${{ inputs.platform }}" \ "${{ inputs.configuration }}" \ -project="${{ inputs.project_file }}" \ -waitmutex \ -targetplatform=${{ inputs.platform }} - name: Cook and Package shell: bash run: | "${{ inputs.ue_path }}/Engine/Build/BatchFiles/RunUAT.sh" BuildCookRun \ -project="${{ inputs.project_file }}" \ -noP4 \ -platform=${{ inputs.platform }} \ -clientconfig=${{ inputs.configuration }} \ -serverconfig=${{ inputs.configuration }} \ -nocompileeditor -cook -pak -stage -archive \ -archivedirectory="${{ inputs.output }}"