Skip to content

Crash fix

Crash fix #88

Workflow file for this run

name: Build and Publish
on:
push:
branches:
- main
permissions:
contents: write
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setup .NET
uses: actions/setup-dotnet@v2
with:
dotnet-version: '8.0.x'
- name: Clone Drizzle
run: git clone --branch embedded https://github.com/HenryMarkle/Drizzle
- name: Setting up Drizzle
run: |
cd ./Drizzle
dotnet restore
dotnet run --project Drizzle.Transpiler
dotnet build --configuration Release
- name: Restore dependencies
run: dotnet restore
- name: Build
run: |
cd ./Leditor
dotnet build --configuration Release
- name: Publish
run: |
cd ./Leditor
dotnet publish --configuration Release --sc -r linux-x64 --output ../output
- name: Copy assets folder to output directory
run: |
cp -r ./Leditor/assets ./output/assets
cp ./imgui.ini ./output
- name: Archive output
run: zip -r linux-x64.zip ./output
- name: Upload Linux Artifact
uses: actions/upload-artifact@v4
with:
name: linux-binaries
path: ./linux-x64.zip
build-linux-minimal:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setup .NET
uses: actions/setup-dotnet@v2
with:
dotnet-version: '8.0.x'
- name: Clone Drizzle
run: git clone --branch embedded https://github.com/HenryMarkle/Drizzle
- name: Setting up Drizzle
run: |
cd ./Drizzle
dotnet restore
dotnet run --project Drizzle.Transpiler
dotnet build --configuration Release
- name: Restore dependencies
run: dotnet restore
- name: Build
run: |
cd ./Leditor
dotnet build --configuration Release
- name: Publish
run: |
cd ./Leditor
dotnet publish --configuration Release --sc -r linux-x64 --output ../output
- name: Copy assets folder to output directory
run: |
rsync -av --exclude='renderer/Props' --exclude='renderer/Graphics/' ./Leditor/assets/ ./output/assets/
cp ./imgui.ini ./output
- name: Archive output
run: zip -r linux-minimal-x64.zip ./output
- name: Upload Linux Artifact (minimal)
uses: actions/upload-artifact@v4
with:
name: linux-binaries-minimal
path: ./linux-minimal-x64.zip
build-windows:
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setup .NET
uses: actions/setup-dotnet@v2
with:
dotnet-version: '8.0.x'
- name: Clone Drizzle
run: git clone --branch embedded https://github.com/HenryMarkle/Drizzle
- name: Setting up Drizzle
run: |
cd ./Drizzle
dotnet restore
dotnet run --project Drizzle.Transpiler
dotnet build --configuration Release
- name: Restore dependencies
run: dotnet restore
- name: Build
run: |
cd ./Leditor
dotnet build --configuration Release
- name: Publish
run: |
cd ./Leditor
dotnet publish --configuration Release --sc -r win-x64 --output ../output
- name: Copy assets folder to output directory
run: Copy-Item -Recurse -Path ./Leditor/assets -Destination ./output/assets
- name: Copy ImGui ini file to output directory
run: Copy-Item -Path ./imgui.ini -Destination ./output
- name: Archive output
run: Compress-Archive -Path ./output/* -DestinationPath windows-x64.zip
- name: Upload Windows Artifact
uses: actions/upload-artifact@v4
with:
name: windows-binaries
path: ./windows-x64.zip
build-windows-minimal:
runs-on: windows-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setup .NET
uses: actions/setup-dotnet@v2
with:
dotnet-version: '8.0.x'
- name: Clone Drizzle
run: git clone --branch embedded https://github.com/HenryMarkle/Drizzle
- name: Setting up Drizzle
run: |
cd ./Drizzle
dotnet restore
dotnet run --project Drizzle.Transpiler
dotnet build --configuration Release
- name: Restore dependencies
run: dotnet restore
- name: Build
run: |
cd ./Leditor
dotnet build --configuration Release
- name: Publish
run: |
cd ./Leditor
dotnet publish --configuration Release --sc -r win-x64 --output ../output
- name: Copy assets folder to output directory
run: |
$source = "./Leditor/assets"
$destination = "./output/assets"
$excludeDirs = @("renderer/Props", "renderer/Graphics")
Get-ChildItem -Path $source -Directory -Exclude $excludeDirs | ForEach-Object {
Copy-Item -Path $_.FullName -Destination $destination -Recurse
}
- name: Copy ImGui ini file to output directory
run: Copy-Item -Path ./imgui.ini -Destination ./output
- name: Archive output
run: Compress-Archive -Path ./output/* -DestinationPath windows-minimal-x64.zip
- name: Upload Windows Artifact (minimal)
uses: actions/upload-artifact@v4
with:
name: windows-binaries-minimal
path: ./windows-minimal-x64.zip
create-release:
needs: [build-linux, build-linux-minimal, build-windows, build-windows-minimal]
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Reade Version
id: release_version
run: |
version=$(cat ./Version.txt)
echo "::set-output name=version::$version"
- name: Read release notes
id: read_release_notes
run: |
notes=$(cat ./Release_Notes.txt)
echo "::set-output name=notes::$notes"
- name: Read release notes
id: release_notes
uses: jaywcjlove/github-action-read-file@main
with:
path: Release_Notes.txt
- name: Download Linux Artifact
uses: actions/download-artifact@v4
with:
name: linux-binaries
path: ./artifacts
- name: Download Linux Artifact (minimal)
uses: actions/download-artifact@v4
with:
name: linux-binaries-minimal
path: ./artifacts
- name: Download Windows Artifact
uses: actions/download-artifact@v4
with:
name: windows-binaries
path: ./artifacts
- name: Download Windows Artifact
uses: actions/download-artifact@v4
with:
name: windows-binaries-minimal
path: ./artifacts
- name: Create GitHub Release
if: github.ref == 'refs/heads/main'
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ github.run_number }}
release_name: Release v${{steps.release_version.outputs.version}}
body: ${{ steps.release_notes.outputs.content }}
draft: false
prerelease: false
- name: Upload Linux Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./artifacts/linux-x64.zip
asset_name: linux-x64.zip
asset_content_type: application/zip
- name: Upload Linux Release Asset (minimal)
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./artifacts/linux-minimal-x64.zip
asset_name: linux-minimal-x64.zip
asset_content_type: application/zip
- name: Upload Windows Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./artifacts/windows-x64.zip
asset_name: windows-x64.zip
asset_content_type: application/zip
- name: Upload Windows Release Asset (minimal)
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./artifacts/windows-minimal-x64.zip
asset_name: windows-minimal-x64.zip
asset_content_type: application/zip