Merge pull request #119 from MilchRatchet/dev-collision-vis #111
This file contains hidden or 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: CI | |
| on: [push] | |
| jobs: | |
| build_linux: | |
| runs-on: ubuntu-24.04 | |
| outputs: | |
| release_name: ${{ steps.get-version.outputs.release_name }} | |
| steps: | |
| - uses: actions/checkout@master | |
| - uses: actions/setup-dotnet@v1 | |
| with: | |
| dotnet-version: '8.0.x' | |
| - run: dotnet --list-runtimes && dotnet --list-sdks | |
| name: Output dotnet versions for debugging | |
| - run: git submodule update --init | |
| name: Ensure submodules are present and up to date | |
| - run: mkdir -p /tmp/zips | |
| name: Create output directory | |
| - run: dotnet publish -c Release -o /tmp/out-linux/replanetizer --self-contained --runtime linux-x64 Replanetizer | |
| name: Build Replanetizer for Linux | |
| - run: echo "release_name=$(grep -m 1 'InformationalVersionAttribute' Replanetizer/obj/Release/*/*/Replanetizer.AssemblyInfo.cs | cut -d '"' -f 2)" >> $GITHUB_OUTPUT | |
| id: get-version | |
| name: Get Informational Version Attribute | |
| - run: cd /tmp/out-linux/ && zip -r /tmp/zips/replanetizer-${{steps.get-version.outputs.release_name}}-linux-x64.zip replanetizer | |
| name: Zip up Replanetizer for Linux | |
| - uses: actions/upload-artifact@v4 | |
| name: Upload zips to GitHub actions artifact storage | |
| with: | |
| name: replanetizer-${{steps.get-version.outputs.release_name}}-linux-x64.zip | |
| path: /tmp/zips/replanetizer-${{steps.get-version.outputs.release_name}}-linux-x64.zip | |
| build_windows: | |
| runs-on: windows-2025 | |
| needs: [build_linux] | |
| steps: | |
| - uses: actions/checkout@master | |
| - uses: actions/setup-dotnet@v1 | |
| with: | |
| dotnet-version: '8.0.x' | |
| - run: dotnet --list-runtimes && dotnet --list-sdks | |
| name: Output dotnet versions for debugging | |
| - run: git submodule update --init | |
| name: Ensure submodules are present and up to date | |
| - run: mkdir -p /tmp/zips | |
| name: Create output directory | |
| - run: dotnet publish -c Release -o /tmp/out-win/replanetizer --self-contained --runtime win-x64 Replanetizer | |
| name: Build Replanetizer for Windows | |
| - run: Compress-Archive -Path /tmp/out-win/replanetizer -DestinationPath /tmp/zips/replanetizer-${{needs.build_linux.outputs.release_name}}-win-x64.zip | |
| name: Zip up Replanetizer for Windows | |
| - uses: actions/upload-artifact@v4 | |
| name: Upload zips to GitHub actions artifact storage | |
| with: | |
| name: replanetizer-${{needs.build_linux.outputs.release_name}}-win-x64.zip | |
| path: /tmp/zips/replanetizer-${{needs.build_linux.outputs.release_name}}-win-x64.zip | |
| build_macos: | |
| runs-on: macos-15 | |
| needs: [build_linux] | |
| steps: | |
| - uses: actions/checkout@master | |
| - uses: actions/setup-dotnet@v1 | |
| with: | |
| dotnet-version: '8.0.x' | |
| - run: dotnet --list-runtimes && dotnet --list-sdks | |
| name: Output dotnet versions for debugging | |
| - run: git submodule update --init | |
| name: Ensure submodules are present and up to date | |
| - run: mkdir -p /tmp/zips | |
| name: Create output directory | |
| - run: dotnet publish -c Release -o /tmp/out-osx/replanetizer --self-contained --runtime osx-x64 Replanetizer | |
| name: Build Replanetizer for Mac | |
| - run: cd /tmp/out-osx/ && zip -r /tmp/zips/replanetizer-${{needs.build_linux.outputs.release_name}}-osx-x64.zip replanetizer | |
| name: Zip up Replanetizer for Mac | |
| - uses: actions/upload-artifact@v4 | |
| name: Upload zips to GitHub actions artifact storage | |
| with: | |
| name: replanetizer-${{needs.build_linux.outputs.release_name}}-osx-x64.zip | |
| path: /tmp/zips/replanetizer-${{needs.build_linux.outputs.release_name}}-osx-x64.zip | |
| release: | |
| runs-on: ubuntu-24.04 | |
| needs: [build_linux, build_windows, build_macos] | |
| if: github.ref == 'refs/heads/master' | |
| steps: | |
| - name: Download all workflow run artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: ./ | |
| - name: Create Release | |
| id: create_release | |
| if: github.ref == 'refs/heads/master' | |
| uses: actions/create-release@master | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| tag_name: ${{needs.build_linux.outputs.release_name}} | |
| release_name: v${{needs.build_linux.outputs.release_name}} | |
| draft: false | |
| prerelease: false | |
| - name: Upload Release Asset Linux | |
| if: github.ref == 'refs/heads/master' | |
| uses: actions/upload-release-asset@v1.0.1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_name: replanetizer-${{needs.build_linux.outputs.release_name}}-linux-x64.zip | |
| asset_path: replanetizer-${{needs.build_linux.outputs.release_name}}-linux-x64.zip/replanetizer-${{needs.build_linux.outputs.release_name}}-linux-x64.zip | |
| asset_content_type: application/zip | |
| - name: Upload Release Asset Windows | |
| if: github.ref == 'refs/heads/master' | |
| uses: actions/upload-release-asset@v1.0.1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_name: replanetizer-${{needs.build_linux.outputs.release_name}}-win-x64.zip | |
| asset_path: replanetizer-${{needs.build_linux.outputs.release_name}}-win-x64.zip/replanetizer-${{needs.build_linux.outputs.release_name}}-win-x64.zip | |
| asset_content_type: application/zip | |
| - name: Upload Release Asset macOS | |
| if: github.ref == 'refs/heads/master' | |
| uses: actions/upload-release-asset@v1.0.1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_name: replanetizer-${{needs.build_linux.outputs.release_name}}-osx-x64.zip | |
| asset_path: replanetizer-${{needs.build_linux.outputs.release_name}}-osx-x64.zip/replanetizer-${{needs.build_linux.outputs.release_name}}-osx-x64.zip | |
| asset_content_type: application/zip |