Skip to content

Release

Release #178

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 8.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.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 8.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.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
compile_inno:
name: Compile Installer
runs-on: windows-latest
steps:
- name: Setup .NET 8.0
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Compile Binaries
run: |
curl -s -S -o innosetup.exe https://files.jrsoftware.org/is/6/innosetup-6.3.3.exe
./innosetup.exe
setx PATH "%PATH%;C:\\Program Files (x86)\\Inno Setup 6"
cd Inno
dotnet publish ..\\PixelGraph.UI -c Release -r win-x64 -o src -p:EnableWindowsTargeting=true --self-contained false
ISCC.exe "setup.iss"
- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: inno
path: Inno/publish
publish_release:
name: Publish Release
runs-on: ubuntu-latest
needs: [compile_cli, compile_ui, compile_inno]
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: Download Inno Artifact
uses: actions/download-artifact@v4
with:
name: inno
- name: Move/Rename Binaries
run: |
mv ./win-cli-x64/PixelGraph.exe ./PixelGraph-CLI-Windows-x64.exe
mv ./linux-cli-x64/PixelGraph ./PixelGraph-CLI-Linux-x64
mv ./osx-cli-x64/PixelGraph ./PixelGraph-CLI-OSX-x64
mv ./win-ui-x64/PixelGraph.exe ./PixelGraph-UI-Windows-x64.exe
mv ./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
PixelGraph-Install.exe
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 }}