Skip to content

Release

Release #169

Workflow file for this run

name: Release
on:
workflow_dispatch:
inputs:
version:
description: 'Release version.'
required: true
publish_docker:
description: 'Publish Dockerfile? true | false'
default: 'true'
required: false
jobs:
compile_cli:
name: Compile CLI
runs-on: ubuntu-latest
steps:
- name: Setup .NET 6.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: '6.0.x'
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Compile Binaries
run: |
dotnet publish PixelGraph.CLI -c Release -r win-x64 -o publish/win-cli-x64 -p:PublishSingleFile=true -p:EnableWindowsTargeting=true --self-contained false
dotnet publish PixelGraph.CLI -c Release -r linux-x64 -o publish/linux-cli-x64 -p:PublishSingleFile=true --self-contained false
dotnet publish PixelGraph.CLI -c Release -r osx-x64 -o publish/osx-cli-x64 -p:PublishSingleFile=true --self-contained false
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: cli
path: publish
compile_ui:
name: Compile UI
runs-on: windows-latest
steps:
- name: Setup .NET 6.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: '6.0.x'
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Prepare shaders
run: dotnet build PixelGraph.Rendering -c Release
- name: Compile Binaries
run: |
dotnet publish PixelGraph.UI -c Release -r win-x64 -o publish/win-ui-x64 -p:PublishSingleFile=true -p:EnableWindowsTargeting=true --self-contained false
dotnet publish PixelGraph.UI -c ReleaseNoRender -r win7-x64 -o publish/wine-ui-x64 -p:PublishReadyToRun=true -p:PublishReadyToRunShowWarnings=true --self-contained
- name: Archive WineHQ Release
uses: thedoctor0/zip-release@master
with:
filename: publish/WineHQ-UI-x64.zip
path: publish/wine-ui-x64/
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: ui
path: publish
publish_release:
name: Publish Release
runs-on: ubuntu-latest
needs: [compile_cli, compile_ui]
permissions:
contents: write
steps:
- name: Download CLI Artifact
uses: actions/download-artifact@v4
with:
name: cli
- name: Download UI Artifact
uses: actions/download-artifact@v4
with:
name: ui
- name: Move/Rename Binaries
run: |
mv ./publish/win-cli-x64/PixelGraph.exe ./PixelGraph-CLI-Windows-x64.exe
mv ./publish/linux-cli-x64/PixelGraph ./PixelGraph-CLI-Linux-x64
mv ./publish/osx-cli-x64/PixelGraph ./PixelGraph-CLI-OSX-x64
mv ./publish/win-ui-x64/PixelGraph.exe ./PixelGraph-UI-Windows-x64.exe
mv ./publish/WineHQ-UI-x64.zip ./PixelGraph-UI-WineHQ-x64.zip
- name: Release
uses: softprops/action-gh-release@v2
with:
draft: true
generate_release_notes: true
make_latest: "true"
name: Release ${{ github.event.inputs.version }}
tag_name: v${{ github.event.inputs.version }}
files: |
PixelGraph-CLI-Windows-x64.exe
PixelGraph-CLI-Linux-x64
PixelGraph-CLI-OSX-x64
PixelGraph-UI-Windows-x64.exe
PixelGraph-UI-WineHQ-x64.zip
publish_docker:
if: ${{ github.event.inputs.publish_docker == 'true' }}
name: Publish Dockerfile
runs-on: ubuntu-latest
needs: [publish_release]
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Docker Setup
uses: docker/setup-buildx-action@v3
- name: Docker Login
uses: docker/login-action@v3
with:
username: null511
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Publish Dockerfile
uses: docker/build-push-action@v6
with:
pull: true
push: true
tags: |
null511/pixelgraph:latest
null511/pixelgraph:${{ github.event.inputs.version }}