diff --git a/.github/workflows/macos.yml b/.github/workflows/macos.yml index 89968a25..85b4b203 100644 --- a/.github/workflows/macos.yml +++ b/.github/workflows/macos.yml @@ -1,10 +1,16 @@ -name: MacOs DMG +name: Macos Build on: push: branches: [ "main" ] pull_request: branches: [ "main" ] + workflow_call: + inputs: + upload_artifacts: + description: Should upload artifacts or not + type: boolean + default: false jobs: build-dmg: @@ -30,33 +36,17 @@ jobs: - name: Build run: cmake --build build -t install - - name: Create macOS app structure - run: | - mkdir -p VoxelEngine.app/Contents/MacOS - mkdir -p VoxelEngine.app/Contents/Resources - cp build/VoxelEngine VoxelEngine.app/Contents/MacOS/ - cp -r res VoxelEngine.app/Contents/Resources/ - echo "" > VoxelEngine.app/Contents/Info.plist - echo "" >> VoxelEngine.app/Contents/Info.plist - echo "" >> VoxelEngine.app/Contents/Info.plist - echo "" >> VoxelEngine.app/Contents/Info.plist - echo " CFBundleExecutable" >> VoxelEngine.app/Contents/Info.plist - echo " VoxelEngine" >> VoxelEngine.app/Contents/Info.plist - echo " CFBundleIdentifier" >> VoxelEngine.app/Contents/Info.plist - echo " com.yourcompany.VoxelEngine" >> VoxelEngine.app/Contents/Info.plist - echo " CFBundleName" >> VoxelEngine.app/Contents/Info.plist - echo " VoxelEngine" >> VoxelEngine.app/Contents/Info.plist - echo " CFBundleVersion" >> VoxelEngine.app/Contents/Info.plist - echo " 1.0" >> VoxelEngine.app/Contents/Info.plist - echo "" >> VoxelEngine.app/Contents/Info.plist - echo "" >> VoxelEngine.app/Contents/Info.plist - - name: Create DMG + if: ${{ inputs.upload_artifacts }} run: | - hdiutil create VoxelEngine.dmg -volname "VoxelEngine" -srcfolder VoxelEngine.app -ov -format UDZO + mkdir VoxelEngineDmgContent + cp -r build/res VoxelEngineDmgContent/ + cp -r build/VoxelEngine VoxelEngineDmgContent/ + hdiutil create VoxelEngineMacApp.dmg -volname "VoxelEngine" -srcfolder VoxelEngineDmgContent -ov -format UDZO - - name: Upload DMG - uses: actions/upload-artifact@v2 + - name: Upload artifacts + if: ${{ inputs.upload_artifacts }} + uses: actions/upload-artifact@v4 with: name: VoxelEngineMacOs - path: VoxelEngine.dmg + path: VoxelEngineMacApp.dmg \ No newline at end of file diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a1186ce3..1863467a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -14,18 +14,35 @@ jobs: build_type: Release upload_artifacts: true + build_release_macos: + name: Build Release MacOS + uses: ./.github/workflows/macos.yml + with: + upload_artifacts: true + create_release: - needs: build_release + needs: [build_release, build_release_macos] runs-on: ubuntu-latest steps: - name: Download artifacts uses: actions/download-artifact@v4 with: name: VoxelEngine + + - name: Download artifacts (MacOS) + uses: actions/download-artifact@v4 + with: + name: VoxelEngineMacOs + - name: Pack artifacts run: | chmod +x VoxelEngine zip -r VoxelEngine.zip res VoxelEngine + + - name: Pack artifacts (MacOS DMG) + run: | + cp VoxelEngineMacApp.dmg VoxelEngine.dmg + - name: Grab and store version run: | tag_name=$(echo ${{ github.ref }} | grep -oE "v[^/]+$") @@ -41,3 +58,4 @@ jobs: prerelease: false files: | VoxelEngine.zip + VoxelEngine.dmg