Skip to content

SUB - Build on Windows #7

SUB - Build on Windows

SUB - Build on Windows #7

name: SUB - Build on Windows
on:
workflow_dispatch:
inputs:
env:
description: "An Environment"
required: true
type: choice
options:
- Development
- Production
version:
description: "A Version"
required: true
type: string
caching:
description: "Use caching"
required: true
type: boolean
default: false
workflow_call:
inputs:
env:
description: "An Environment"
required: true
type: string
version:
description: "A Version"
required: true
type: string
caching:
description: "Use caching"
required: true
type: boolean
default: false
env:
app_name: ${{ inputs.env == 'Production' && 'SuperHumanInstaller' || 'SuperHumanInstallerDev' }}
app_id: net.prominic.genesis.${{ inputs.env == 'Production' && 'superhumaninstaller' || 'superhumaninstallerdev' }}
full_version: ${{ inputs.version }}.${{ github.run_number }}
haxe_flag: ${{ inputs.env == 'Production' && '-final' || '-debug' }}
haxe_version: 4.3.3
jobs:
build:
runs-on: windows-latest
steps:
- name: Build info
run: |
echo "Ref: ${{ github.ref_name }}"
echo "Env: ${{ inputs.env }}"
echo "Version: ${{ env.full_version }}"
echo "App Name: ${{ env.app_name }}"
echo "App ID: ${{ env.app_id }}"
echo "Haxe Env Flag: ${{ env.haxe_flag }}"
- name: Checkout repo
uses: actions/checkout@v4
with:
lfs: true
- name: Checkout LFS objects
run: git lfs checkout
- name: Override project.xml version
uses: Moonshine-IDE/[email protected]
with:
filepath: "project.xml"
xpath: "/project/meta/@version"
replace: "${{ env.full_version }}"
- name: Set up Haxe
uses: krdlab/[email protected]
with:
haxe-version: ${{ env.haxe_version }}
- name: Show haxe info
run: |
echo "Haxe version:"
haxe -version
echo "Haxe lib path:"
haxelib config
- name: Update haxelib
run: haxelib --global update haxelib
- name: Cache Binaries
id: cache-bin
if: ${{ inputs.caching }}
uses: actions/cache@v4
with:
path: Export/Development/windows/bin/
key: ${{ env.app_name }}-windows-bin
- name: Install dependencies
if: ${{ !inputs.caching || !steps.cache-bin.outputs.cache-hit }}
working-directory: Build
run: |
haxelib install hxcpp
git clone --recursive --depth 1 --branch develop https://github.com/openfl/lime
haxelib dev lime lime
haxelib install format
haxelib install hxp
haxelib git lime-samples https://github.com/openfl/lime-samples
haxelib git openfl https://github.com/openfl/openfl.git develop
haxelib run openfl setup
haxelib git feathersui https://github.com/feathersui/feathersui-openfl.git
haxelib git champaign https://github.com/Moonshine-IDE/Champaign.git
- name: Build
if: ${{ !inputs.caching || !steps.cache-bin.outputs.cache-hit }}
run: >
haxelib run openfl build project.xml windows
${{ env.haxe_flag }}
-Dlogverbose
-Dlogcolor
-Dgitsha=${{ github.sha }}
-Dgitbranch=${{ github.ref_name }}
- name: Show Build
run: ls -r Export/${{ inputs.env }}/windows/bin/
- name: Upload bin
uses: actions/upload-artifact@v4
with:
name: ${{ env.app_name }}-windows-bin
path: Export/${{ inputs.env }}/windows/bin/
- name: Create NSIS installer
run: >
makensis
/DPRODUCT_NAME=${{ env.app_name }}
/DPRODUCT_VERSION=${{ env.full_version }}
/DPRODUCT_PUBLISHER="Prominic.NET"
/DPRODUCT_WEB_SITE="/https://superhumaninstaller.com/"
/DBIN_PATH="..\..\Export\${{ inputs.env }}\windows\bin\*.*"
/DPRODUCT_EXE=${{ env.app_name }}.exe
/DPRODUCT_INSTALLER=${{ env.app_name }}-Setup.exe
/DROOT_KEY=HKCU
Templates/installer/nsis-installer.nsi
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ env.app_name }}-Setup.exe
path: Templates/installer/${{ env.app_name }}-Setup.exe
if-no-files-found: error