Skip to content

Commit

Permalink
Add github build workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
Zarklord committed Aug 1, 2024
1 parent 15fbe84 commit 9aeb7b2
Show file tree
Hide file tree
Showing 4 changed files with 207 additions and 24 deletions.
199 changes: 199 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
name: Build UniversalPropertyEnhancer

on:
push:
workflow_dispatch:

env:
# Build Packages Variables
SPORE_MODDER_FX_TAG: 'v2.2.10'
SPORE_MODDER_FX_FILE: 'SporeModder.FX.zip'

# Build DLLs Variables
SPORE_MOD_API_REF: 'v2.5.326'
SPORE_LUA_API_REF: '67811a03f2edc84a26956c512d0180564ebe0dd3'
SPORE_MOD_API_BUILD_VER: '326'

#Build Sporemod Variables
SPOREMOD_DLLS_BUILD: '2.5.326'
SPOREMOD_PREFIX: 'UPE'

jobs:
build-packages:
name: Build Packages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: '11'
java-package: 'jre'
- name: Setup SMFX
uses: robinraju/release-downloader@v1
with:
repository: 'emd4600/SporeModder-FX'
tag: ${{ env.SPORE_MODDER_FX_TAG }}
fileName: ${{ env.SPORE_MODDER_FX_FILE }}
tarBall: false
zipBall: false
out-file-path: ''
extract: true
- run: mkdir -p Packages
- name: Build SMFX Project
run: |
cd "SporeModder FX"
java -jar SporeModderFX.jar pack ../Projects/UniversalPropertyEnhancer ../Packages/UniversalPropertyEnhancer.package
- name: Upload Packages
uses: actions/upload-artifact@v4
with:
name: packages
retention-days: 1
compression-level: 0
path: Packages/*

build-dlls:
name: Build DLLs
runs-on: windows-2022
steps:
- name: Setup MSBuild
uses: microsoft/setup-msbuild@v2

# Build Spore-ModAPI
- name: Cache Spore-ModAPI
id: cache-spore-modapi
uses: actions/cache/restore@v4
with:
path: Spore-ModAPI
key: spore-modapi-${{ env.SPORE_MOD_API_REF }}
- name: Checkout Spore-ModAPI
if: ${{ steps.cache-spore-modapi.outputs.cache-hit != 'true' }}
uses: actions/checkout@v4
with:
repository: 'emd4600/Spore-ModAPI'
ref: ${{ env.SPORE_MOD_API_REF }}
path: 'Spore-ModAPI'
submodules: 'true'
- name: Build Spore ModAPI
run: |
cd Spore-ModAPI
msbuild "Spore ModAPI" /m "/p:Configuration=Release DLL,Platform=x86,SDK_BUILD_VER=${{ env.SPORE_MOD_API_BUILD_VER }},EXECUTABLE_TYPE=2" `
"/p:OutDir=${{ github.workspace }}\coreLibs\" /clp:Summary /v:m
- name: Save Spore-ModAPI
if: ${{ ! contains(github.ref_type, 'tag') && steps.cache-spore-modapi.outputs.cache-hit != 'true' }}
uses: actions/cache/save@v4
with:
path: Spore-ModAPI
key: ${{ steps.cache-spore-modapi.outputs.cache-primary-key }}

# Build Spore-LuaAPI
- name: Cache Spore-LuaAPI
id: cache-spore-luaapi
uses: actions/cache/restore@v4
with:
path: Spore-LuaAPI
key: spore-luaapi-${{ env.SPORE_LUA_API_REF }}
- name: Checkout Spore-LuaAPI
if: ${{ steps.cache-spore-luaapi.outputs.cache-hit != 'true' }}
uses: actions/checkout@v4
with:
repository: 'Zarklord/Spore-LuaAPI'
ref: ${{ env.SPORE_LUA_API_REF }}
path: 'Spore-LuaAPI'
submodules: 'true'
- name: Build Spore LuaAPI
run: |
cd Spore-LuaAPI
msbuild "Spore LuaAPI.sln" /m "/p:Configuration=Release DLL,Platform=x86" `
"/p:SporeSDKPath=${{ github.workspace }}\Spore-ModAPI\,SporeLauncherPath=${{ github.workspace }}\" `
"/p:OutDir=${{ github.workspace }}\coreLibs\" /clp:Summary /v:m
- name: Save Spore-LuaAPI
if: ${{ ! contains(github.ref_type, 'tag') && steps.cache-spore-luaapi.outputs.cache-hit != 'true' }}
uses: actions/cache/save@v4
with:
path: Spore-LuaAPI
key: ${{ steps.cache-spore-luaapi.outputs.cache-primary-key }}

#Build UniversalPropertyEnhancer
- name: Checkout UniversalPropertyEnhancer
uses: actions/checkout@v4
with:
path: ${{ github.event.repository.name }}
submodules: 'true'
- name: Build UniversalPropertyEnhancer
run: |
cd ${{ github.event.repository.name }}
msbuild UniversalPropertyEnhancer.sln /m /p:Configuration=Release,Platform=x86 `
"/p:SporeSDKPath=${{ github.workspace }}\Spore-ModAPI\,SporeLuaSdkPath=${{ github.workspace }}\Spore-LuaAPI\,SporeLauncherPath=${{ github.workspace }}\" `
"/p:OutDir=${{ github.workspace }}\coreLibs\" /clp:Summary /v:m
- name: Upload DLL
uses: actions/upload-artifact@v4
with:
name: dll
retention-days: 1
compression-level: 0
path: |
coreLibs/UniversalPropertyEnhancer.dll
coreLibs/UniversalPropertyEnhancer.pdb
build-sporemod:
name: Build Sporemod
needs: [ build-packages, build-dlls ]
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
path: ${{ github.workspace }}/Sporemod
merge-multiple: true

# any tag that doesn't match v.X.X.X (with an optional single character path, eg v1.2.73b) will be marked as experimental
- run: echo "${{ github.ref_name }}" | grep -qE '^v[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+[[:alpha:]]?$'
id: test_experimental
continue-on-error: true
- run: echo "SPOREMOD_EXPERIMENTAL=${{ steps.test_experimental.outcome != 'success' }}" >> $GITHUB_ENV

- uses: iamazeem/substitute-action@v1
with:
input-files: |
Sporemod/ModInfo.xml
enable-in-place: true
- run: ls ${{ github.workspace }}/Sporemod

- if: ${{ contains(github.ref_type, 'tag') }}
run: echo "SPOREMOD_NAME=${{ env.SPOREMOD_PREFIX }}${{ github.ref_name }}.sporemod" >> $GITHUB_ENV
- if: ${{ ! contains(github.ref_type, 'tag') }}
run: echo "SPOREMOD_NAME=${{ env.SPOREMOD_PREFIX }}${{ github.ref_name }}-$(git rev-parse --short HEAD).sporemod" >> $GITHUB_ENV

- run: echo "DRAFT_RELEASE_NAME=$(echo "${{ github.event.repository.name }} ${{ github.ref_name }}" | tr '-' ' ')" >> $GITHUB_ENV

- name: Create sporemod
uses: thedoctor0/[email protected]
with:
type: 'zip'
filename: ${{ env.SPOREMOD_NAME }}
path: 'Sporemod'
custom: '-j -9'

- name: Create draft release
if: ${{ contains(github.ref_type, 'tag') }}
uses: ncipollo/[email protected]
with:
draft: true
name: ${{ env.DRAFT_RELEASE_NAME }}
prerelease: ${{ env.SPOREMOD_EXPERIMENTAL }}
makeLatest: true
tag: ${{ github.ref_name }}
artifacts: ${{ env.SPOREMOD_NAME }}

- name: Upload sporemod artifact
if: ${{ ! contains(github.ref_type, 'tag') }}
uses: actions/upload-artifact@v4
with:
name: sporemod
retention-days: 30
compression-level: 0
path: ${{ env.SPOREMOD_NAME }}
6 changes: 6 additions & 0 deletions Sporemod/ModInfo.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<mod displayName="Universal Property Enhancer" unique="upe" description="Universal Property Enhancer is a mod for Spore, that allows enhancements to properties in a dynamic way." isExperimental="$SPOREMOD_EXPERIMENTAL" installerSystemVersion="1.0.1.2" dllsBuild="$SPOREMOD_DLLS_BUILD">
<prerequisite>UniversalPropertyEnhancer.dll</prerequisite>
<prerequisite game="Spore">UniversalPropertyEnhancer.package</prerequisite>
<remove>UniversalPropertyReplacement*</remove>
<remove game="GalacticAdventures">UPEVerify.package</remove>
</mod>
24 changes: 1 addition & 23 deletions UniversalPropertyEnhancer.sln
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "UniversalPropertyEnhancer",
{F057451A-1413-4D68-AF56-1BF529933420} = {F057451A-1413-4D68-AF56-1BF529933420}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Spore ModAPI", "..\..\SourceCode\Spore-ModAPI\Spore ModAPI\Spore ModAPI.vcxproj", "{F057451A-1413-4D68-AF56-1BF529933420}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Spore ModAPI", "..\Spore-ModAPI\Spore ModAPI\Spore ModAPI.vcxproj", "{F057451A-1413-4D68-AF56-1BF529933420}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Spore LuaAPI", "..\Spore-LuaAPI\Spore LuaAPI\Spore LuaAPI.vcxproj", "{51E418B6-56B0-430E-AA00-15E1B30DE8DF}"
EndProject
Expand All @@ -19,50 +19,28 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "tracy", "..\Spore-LuaAPI\tr
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug DLL|x86 = Debug DLL|x86
Debug|x86 = Debug|x86
Release DLL|x86 = Release DLL|x86
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{07FC5B61-B575-4207-B464-AFAE6AF3FC19}.Debug DLL|x86.ActiveCfg = Debug|Win32
{07FC5B61-B575-4207-B464-AFAE6AF3FC19}.Debug DLL|x86.Build.0 = Debug|Win32
{07FC5B61-B575-4207-B464-AFAE6AF3FC19}.Debug|x86.ActiveCfg = Debug|Win32
{07FC5B61-B575-4207-B464-AFAE6AF3FC19}.Debug|x86.Build.0 = Debug|Win32
{07FC5B61-B575-4207-B464-AFAE6AF3FC19}.Release DLL|x86.ActiveCfg = Release|Win32
{07FC5B61-B575-4207-B464-AFAE6AF3FC19}.Release DLL|x86.Build.0 = Release|Win32
{07FC5B61-B575-4207-B464-AFAE6AF3FC19}.Release|x86.ActiveCfg = Release|Win32
{07FC5B61-B575-4207-B464-AFAE6AF3FC19}.Release|x86.Build.0 = Release|Win32
{F057451A-1413-4D68-AF56-1BF529933420}.Debug DLL|x86.ActiveCfg = Debug DLL|Win32
{F057451A-1413-4D68-AF56-1BF529933420}.Debug DLL|x86.Build.0 = Debug DLL|Win32
{F057451A-1413-4D68-AF56-1BF529933420}.Debug|x86.ActiveCfg = Debug|Win32
{F057451A-1413-4D68-AF56-1BF529933420}.Debug|x86.Build.0 = Debug|Win32
{F057451A-1413-4D68-AF56-1BF529933420}.Release DLL|x86.ActiveCfg = Release DLL|Win32
{F057451A-1413-4D68-AF56-1BF529933420}.Release DLL|x86.Build.0 = Release DLL|Win32
{F057451A-1413-4D68-AF56-1BF529933420}.Release|x86.ActiveCfg = Release|Win32
{F057451A-1413-4D68-AF56-1BF529933420}.Release|x86.Build.0 = Release|Win32
{51E418B6-56B0-430E-AA00-15E1B30DE8DF}.Debug DLL|x86.ActiveCfg = Debug DLL|Win32
{51E418B6-56B0-430E-AA00-15E1B30DE8DF}.Debug DLL|x86.Build.0 = Debug DLL|Win32
{51E418B6-56B0-430E-AA00-15E1B30DE8DF}.Debug|x86.ActiveCfg = Debug|Win32
{51E418B6-56B0-430E-AA00-15E1B30DE8DF}.Debug|x86.Build.0 = Debug|Win32
{51E418B6-56B0-430E-AA00-15E1B30DE8DF}.Release DLL|x86.ActiveCfg = Release DLL|Win32
{51E418B6-56B0-430E-AA00-15E1B30DE8DF}.Release DLL|x86.Build.0 = Release DLL|Win32
{51E418B6-56B0-430E-AA00-15E1B30DE8DF}.Release|x86.ActiveCfg = Release|Win32
{51E418B6-56B0-430E-AA00-15E1B30DE8DF}.Release|x86.Build.0 = Release|Win32
{2B86CB31-7638-4BCD-BACE-97D1DC37DB65}.Debug DLL|x86.ActiveCfg = Debug DLL|Win32
{2B86CB31-7638-4BCD-BACE-97D1DC37DB65}.Debug DLL|x86.Build.0 = Debug DLL|Win32
{2B86CB31-7638-4BCD-BACE-97D1DC37DB65}.Debug|x86.ActiveCfg = Debug|Win32
{2B86CB31-7638-4BCD-BACE-97D1DC37DB65}.Debug|x86.Build.0 = Debug|Win32
{2B86CB31-7638-4BCD-BACE-97D1DC37DB65}.Release DLL|x86.ActiveCfg = Release DLL|Win32
{2B86CB31-7638-4BCD-BACE-97D1DC37DB65}.Release DLL|x86.Build.0 = Release DLL|Win32
{2B86CB31-7638-4BCD-BACE-97D1DC37DB65}.Release|x86.ActiveCfg = Release|Win32
{2B86CB31-7638-4BCD-BACE-97D1DC37DB65}.Release|x86.Build.0 = Release|Win32
{79338010-B010-4950-B2D1-F4E187E74B8B}.Debug DLL|x86.ActiveCfg = Debug DLL|Win32
{79338010-B010-4950-B2D1-F4E187E74B8B}.Debug DLL|x86.Build.0 = Debug DLL|Win32
{79338010-B010-4950-B2D1-F4E187E74B8B}.Debug|x86.ActiveCfg = Debug|Win32
{79338010-B010-4950-B2D1-F4E187E74B8B}.Debug|x86.Build.0 = Debug|Win32
{79338010-B010-4950-B2D1-F4E187E74B8B}.Release DLL|x86.ActiveCfg = Release DLL|Win32
{79338010-B010-4950-B2D1-F4E187E74B8B}.Release DLL|x86.Build.0 = Release DLL|Win32
{79338010-B010-4950-B2D1-F4E187E74B8B}.Release|x86.ActiveCfg = Release|Win32
{79338010-B010-4950-B2D1-F4E187E74B8B}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
Expand Down
2 changes: 1 addition & 1 deletion source/SdkPathConfig.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros">
<SporeSdkPath>D:\SourceCode\Spore-ModAPI\</SporeSdkPath>
<SporeSdkPath>D:\SporeDLLMods\Spore-ModAPI\</SporeSdkPath>
<SporeLuaSdkPath>D:\SporeDLLMods\Spore-LuaAPI\</SporeLuaSdkPath>
<SporeLauncherPath>D:\Programs\Spore ModAPI Launcher Kit\</SporeLauncherPath>
</PropertyGroup>
Expand Down

0 comments on commit 9aeb7b2

Please sign in to comment.