diff --git a/.github/workflows/release.yaml b/.github/workflows/announce-release-prerelease.yml
similarity index 95%
rename from .github/workflows/release.yaml
rename to .github/workflows/announce-release-prerelease.yml
index 980ef550..c50e95e5 100644
--- a/.github/workflows/release.yaml
+++ b/.github/workflows/announce-release-prerelease.yml
@@ -1,4 +1,4 @@
-name: Release
+name: Announce Release/Prerelease
on:
release:
diff --git a/.github/workflows/dotnet.yml b/.github/workflows/build-prerelease.yml
similarity index 94%
rename from .github/workflows/dotnet.yml
rename to .github/workflows/build-prerelease.yml
index 1ceb0a28..59c03eb9 100644
--- a/.github/workflows/dotnet.yml
+++ b/.github/workflows/build-prerelease.yml
@@ -1,4 +1,4 @@
-name: .NET
+name: Build Prerelease
on:
push:
@@ -69,6 +69,6 @@ jobs:
files: FrEee-binary-*.zip
draft: false
prerelease: true
- name: Auto-Build Release ${{steps.get_versions.outputs.version}}-${{steps.createReleaseTag.outputs.string}}
+ name: Auto-Build Prerelease ${{steps.get_versions.outputs.version}}-${{steps.createReleaseTag.outputs.string}}
fail_on_unmatched_files: true
token: ${{ secrets.RELEASE_TOKEN }}
diff --git a/.github/workflows/build-release.yml b/.github/workflows/build-release.yml
new file mode 100644
index 00000000..89825338
--- /dev/null
+++ b/.github/workflows/build-release.yml
@@ -0,0 +1,68 @@
+name: Build Release
+
+on:
+ push:
+ branches: [ release/** ]
+
+jobs:
+ build:
+
+ runs-on: windows-latest
+
+ steps:
+ - name: Check out code
+ uses: actions/checkout@v2
+ - name: Set up .NET
+ uses: actions/setup-dotnet@v1
+ with:
+ dotnet-version: 10.0.x
+ - name: Install dependencies
+ run: dotnet restore
+ - name: Build
+ run: dotnet build --configuration Release --no-restore
+ - name: Test
+ uses: zyborg/dotnet-tests-report@v1.3.0
+ with:
+ project_path: FrEee.Tests/FrEee.Tests.csproj
+ no_restore: true # we already restored above
+ msbuild_configuration: Release
+ msbuild_verbosity: normal # q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic].
+ report_name: TestReport_${{github.sha}}_$NOW
+ report_title: Test Report
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ skip_check_run: false
+ set_check_status_from_test_outcome: false # true = fail the build if tests fail
+ #trx_xsl_path: # optional
+ - name: Get assembly version
+ uses: KageKirin/get-csproj-version@v0
+ id: get_versions
+ with:
+ file: 'FrEee.Assets/CommonProjectProperties.xml'
+ - name: List files
+ run: ls -s .\bin\Release\net10.0-windows
+ - name: Prepare files for zipping
+ run: |
+ cd bin/Release
+ robocopy net10.0 FrEee /E
+ rem errorlevel less than 8 is not actually an error for robocopy so reset the errorlevel to zero
+ if not errorlevel 8 (call )
+ robocopy net10.0-windows FrEee /E
+ if not errorlevel 8 (call )
+ rmdir /S /Q net10.0
+ rmdir /S /Q net10.0-windows
+ shell: cmd
+ - name: Zip assets
+ uses: papeloto/action-zip@v1
+ with:
+ files: ./bin/Release
+ dest: FrEee-binary-${{steps.get_versions.outputs.version}}.zip
+ - name: Release
+ uses: softprops/action-gh-release@v1
+ with:
+ tag_name: ${{steps.get_versions.outputs.version}}
+ files: FrEee-binary-*.zip
+ draft: false
+ prerelease: false
+ name: Release ${{steps.get_versions.outputs.version}}
+ fail_on_unmatched_files: true
+ token: ${{ secrets.RELEASE_TOKEN }}
diff --git a/FrEee.Assets/CommonProjectProperties.xml b/FrEee.Assets/CommonProjectProperties.xml
index 7f9cad37..a4fdb83e 100644
--- a/FrEee.Assets/CommonProjectProperties.xml
+++ b/FrEee.Assets/CommonProjectProperties.xml
@@ -2,8 +2,8 @@
http://edkolis.com/freee
FrEee
- 0.0.9
- Copyright © 2013-2025
+ 0.1.0
+ Copyright © 2013-2026
../FrEee.Assets/FrEee.ico
enable
diff --git a/FrEee.Tests/Utility/SerializerTest.cs b/FrEee.Tests/Utility/SerializerTest.cs
index 65243d9c..37814df0 100644
--- a/FrEee.Tests/Utility/SerializerTest.cs
+++ b/FrEee.Tests/Utility/SerializerTest.cs
@@ -121,7 +121,7 @@ public void LookUpComplexType()
Assert.AreEqual(typeof(Dictionary>), st.Type);
}
{
- var tname = "System.Collections.Generic.IDictionary`2[[FrEee.Modding.Abilities.AbilityRule, FrEee.Core, Version=0.0.9.0, Culture=neutral, PublicKeyToken=null],[System.Collections.Generic.IDictionary`2[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[FrEee.Modding.Formula`1[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], FrEee.Core, Version=0.0.9.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]";
+ var tname = "System.Collections.Generic.IDictionary`2[[FrEee.Modding.Abilities.AbilityRule, FrEee.Core, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null],[System.Collections.Generic.IDictionary`2[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[FrEee.Modding.Formula`1[[System.Int32, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], FrEee.Core, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]";
var st = new SafeType(tname);
Assert.AreEqual(typeof(IDictionary>>), st.Type);
}
@@ -131,12 +131,12 @@ public void LookUpComplexType()
public void LegacyLookUpComplexType()
{
{
- var tname = "System.Collections.Generic.List`1[[FrEee.Modding.Abilities.AbilityRule, FrEee.Core, Version=0.0.9.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
+ var tname = "System.Collections.Generic.List`1[[FrEee.Modding.Abilities.AbilityRule, FrEee.Core, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
var st = new SafeType(tname);
Assert.AreEqual(typeof(List), st.Type);
}
{
- var tname = "System.Collections.Generic.List`1[[FrEee.Modding.Formula`1[[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], FrEee.Core, Version=0.0.9.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
+ var tname = "System.Collections.Generic.List`1[[FrEee.Modding.Formula`1[[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]], FrEee.Core, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null]], System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
var st = new SafeType(tname);
Assert.AreEqual(typeof(List>), st.Type);
}
@@ -146,7 +146,7 @@ public void LegacyLookUpComplexType()
[Ignore("Script type no longer in existence")]
public void LegacyLookUpArrays()
{
- var tname = "FrEee.Modding.Script[], FrEee.Core, Version=0.0.9.0, Culture=neutral, PublicKeyToken=null";
+ var tname = "FrEee.Modding.Script[], FrEee.Core, Version=0.1.0.0, Culture=neutral, PublicKeyToken=null";
var st = new SafeType(tname);
Assert.AreEqual(typeof(PythonScript[]), st.Type);
}