Skip to content

Commit 17555e3

Browse files
Adds CI workflows
* Adds "installable" version * Automated builds on commit * Automated releases on tag * Upgrades to .NET 4.8 * Removes uploading of "simple" World Control data
1 parent 92ad19d commit 17555e3

File tree

8 files changed

+294
-17
lines changed

8 files changed

+294
-17
lines changed

.github/workflows/ci.yml

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# This is a basic workflow to help you get started with Actions
2+
3+
name: BoundlexxProxyUI Build
4+
5+
# Controls when the action will run. Triggers the workflow on push or pull request
6+
# events but only for the master branch
7+
on:
8+
push:
9+
branches: [ master ]
10+
pull_request:
11+
branches: [ master ]
12+
13+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
14+
jobs:
15+
# This workflow contains a single job called "build"
16+
build:
17+
name: Build
18+
# The type of runner that the job will run on
19+
runs-on: windows-latest
20+
21+
# Steps represent a sequence of tasks that will be executed as part of the job
22+
steps:
23+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
24+
- uses: actions/checkout@v2
25+
26+
- name: Add msbuild to PATH
27+
uses: microsoft/setup-msbuild@v1.0.1
28+
29+
- name: Setup NuGet
30+
uses: NuGet/setup-nuget@v1.0.2
31+
32+
- name: Restore NuGet Packages
33+
run: nuget restore BoundlessProxyUi.sln
34+
35+
- name: Build and Publish BoundlexxProxyUi
36+
run: msbuild BoundlessProxyUi.sln /p:Configuration=Release /t:Publish /p:Platform=x64 /p:PublishProfile=x64Profile /p:OutputPath=bin\x64\Release
37+
38+
- name: Zip Portable
39+
run: |
40+
cd .\BoundlessProxyUi\bin\x64\Release\
41+
tar.exe -a -c -f ${{ github.workspace }}\BoundlessProxyUi_Portable.zip *
42+
cd ${{ github.workspace }}
43+
44+
- name: Upload Portable Artifact
45+
uses: actions/upload-artifact@v2
46+
with:
47+
name: BoundlessProxyUi_Portable
48+
path: BoundlessProxyUi_Portable.zip
49+
50+
- name: Zip INstaller
51+
run: |
52+
cd .\BoundlessProxyUi\bin\x64\Releaseapp.publish\
53+
tar.exe -a -c -f ${{ github.workspace }}\BoundlessProxyUi_Installer.zip *
54+
cd ${{ github.workspace }}
55+
56+
- name: Upload Installer Artifact
57+
uses: actions/upload-artifact@v2
58+
with:
59+
name: BoundlessProxyUi_Installer
60+
path: BoundlessProxyUi_Installer.zip

.github/workflows/release.yml

+96
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# This is a basic workflow to help you get started with Actions
2+
3+
name: BoundlexxProxyUI Create Release
4+
5+
# Controls when the action will run. Triggers the workflow on push or pull request
6+
# events but only for the master branch
7+
on:
8+
push:
9+
tags: [ "1.*" ]
10+
11+
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
12+
jobs:
13+
# This workflow contains a single job called "build"
14+
build:
15+
name: Build
16+
# The type of runner that the job will run on
17+
runs-on: windows-latest
18+
19+
# Steps represent a sequence of tasks that will be executed as part of the job
20+
steps:
21+
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
22+
- uses: actions/checkout@v2
23+
24+
- name: Add msbuild to PATH
25+
uses: microsoft/setup-msbuild@v1.0.1
26+
27+
- name: Setup NuGet
28+
uses: NuGet/setup-nuget@v1.0.2
29+
30+
- name: Restore NuGet Packages
31+
run: nuget restore BoundlessProxyUi.sln
32+
33+
- name: Build and Publish BoundlexxProxyUi
34+
run: msbuild BoundlessProxyUi.sln /p:Configuration=Release /t:Publish /p:Platform=x64 /p:PublishProfile=x64Profile /p:OutputPath=bin\x64\Release
35+
36+
- name: Zip Portable
37+
run: |
38+
cd .\BoundlessProxyUi\bin\x64\Release\
39+
Remove-Item -Force .\BoundlessProxyUi.application
40+
Remove-Item -Force .\BoundlessProxyUi.pdb
41+
tar.exe -a -c -f ${{ github.workspace }}\BoundlessProxyUi_Portable.zip *
42+
cd ${{ github.workspace }}
43+
44+
- name: Upload Portable Artifact
45+
uses: actions/upload-artifact@v2
46+
with:
47+
name: BoundlessProxyUi_Portable
48+
path: BoundlessProxyUi_Portable.zip
49+
50+
- name: Zip Installer
51+
run: |
52+
cd .\BoundlessProxyUi\bin\x64\Releaseapp.publish\
53+
tar.exe -a -c -f ${{ github.workspace }}\BoundlessProxyUi_Installer.zip *
54+
cd ${{ github.workspace }}
55+
56+
- name: Upload Installer Artifact
57+
uses: actions/upload-artifact@v2
58+
with:
59+
name: BoundlessProxyUi_Installer
60+
path: BoundlessProxyUi_Installer.zip
61+
62+
- name: Create Release
63+
uses: actions/github-script@v2
64+
with:
65+
github-token: ${{secrets.GITHUB_TOKEN}}
66+
script: |
67+
console.log('environment', process.versions);
68+
69+
const fs = require('fs').promises;
70+
71+
const { repo: { owner, repo }, sha } = context;
72+
console.log({ owner, repo, sha });
73+
74+
const release = await github.repos.createRelease({
75+
owner, repo,
76+
tag_name: process.env.GITHUB_REF,
77+
draft: true,
78+
target_commitish: sha,
79+
body: 'Actions Build: https://github.com/' + process.env.GITHUB_REPOSITORY + '/actions/runs/' + process.env.GITHUB_RUN_ID
80+
});
81+
82+
console.log('created release', { release });
83+
84+
await github.repos.uploadReleaseAsset({
85+
owner, repo,
86+
release_id: release.data.id,
87+
name: 'BoundlessProxyUi_Portable.zip',
88+
data: await fs.readFile(`./BoundlessProxyUi_Portable.zip`)
89+
});
90+
91+
await github.repos.uploadReleaseAsset({
92+
owner, repo,
93+
release_id: release.data.id,
94+
name: 'BoundlessProxyUi_Installer.zip',
95+
data: await fs.readFile(`./BoundlessProxyUi_Installer.zip`)
96+
});

BoundlessProxyUi/BoundlessProxyUi.csproj

+58-15
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,15 @@
88
<OutputType>WinExe</OutputType>
99
<RootNamespace>BoundlessProxyUi</RootNamespace>
1010
<AssemblyName>BoundlessProxyUi</AssemblyName>
11-
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
11+
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
1212
<FileAlignment>512</FileAlignment>
1313
<ProjectTypeGuids>{60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
1414
<WarningLevel>4</WarningLevel>
1515
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
1616
<TargetFrameworkProfile />
1717
<NuGetPackageImportStamp>
1818
</NuGetPackageImportStamp>
19+
<IsWebBootstrapper>false</IsWebBootstrapper>
1920
<PublishUrl>publish\</PublishUrl>
2021
<Install>true</Install>
2122
<InstallFrom>Disk</InstallFrom>
@@ -26,10 +27,10 @@
2627
<UpdatePeriodically>false</UpdatePeriodically>
2728
<UpdateRequired>false</UpdateRequired>
2829
<MapFileExtensions>true</MapFileExtensions>
29-
<ApplicationRevision>0</ApplicationRevision>
30-
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
31-
<IsWebBootstrapper>false</IsWebBootstrapper>
30+
<ApplicationRevision>1</ApplicationRevision>
31+
<ApplicationVersion>1.4.0.1</ApplicationVersion>
3232
<UseApplicationTrust>false</UseApplicationTrust>
33+
<PublishWizardCompleted>true</PublishWizardCompleted>
3334
<BootstrapperEnabled>true</BootstrapperEnabled>
3435
</PropertyGroup>
3536
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|x64'">
@@ -52,6 +53,31 @@
5253
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
5354
<Prefer32Bit>true</Prefer32Bit>
5455
</PropertyGroup>
56+
<PropertyGroup>
57+
<ManifestCertificateThumbprint>AA9549ADFE42E606A4BC2B236F97176CE1D5B9D5</ManifestCertificateThumbprint>
58+
</PropertyGroup>
59+
<PropertyGroup>
60+
<ManifestKeyFile>BoundlessProxyUi_TemporaryKey.pfx</ManifestKeyFile>
61+
</PropertyGroup>
62+
<PropertyGroup>
63+
<GenerateManifests>true</GenerateManifests>
64+
</PropertyGroup>
65+
<PropertyGroup>
66+
<TargetZone>LocalIntranet</TargetZone>
67+
</PropertyGroup>
68+
<PropertyGroup />
69+
<PropertyGroup>
70+
<SignManifests>false</SignManifests>
71+
</PropertyGroup>
72+
<PropertyGroup>
73+
<ApplicationManifest>Properties\app.manifest</ApplicationManifest>
74+
</PropertyGroup>
75+
<PropertyGroup>
76+
<StartupObject>BoundlessProxyUi.App</StartupObject>
77+
</PropertyGroup>
78+
<PropertyGroup>
79+
<ApplicationIcon>boundlessmodding2.ico</ApplicationIcon>
80+
</PropertyGroup>
5581
<ItemGroup>
5682
<Reference Include="MsgPack, Version=1.0.0.0, Culture=neutral, PublicKeyToken=a2625990d5dc0167, processorArchitecture=MSIL">
5783
<HintPath>..\packages\MsgPack.Cli.1.0.1\lib\net46\MsgPack.dll</HintPath>
@@ -159,7 +185,7 @@
159185
<Compile Include="Mitm\SslMitmInstance.cs" />
160186
<Compile Include="Mitm\UdpProxy.cs" />
161187
<Compile Include="ProxyUi\UserSearch.cs" />
162-
<Compile Include="Util\EventHandler.cs" />
188+
<Compile Include="Util\WsEventHander.cs" />
163189
<Compile Include="Util\ProxyManagerConfig.cs" />
164190
<Compile Include="WsData\WsFrame.cs" />
165191
<Compile Include="WsData\WsMessage.cs" />
@@ -239,24 +265,26 @@
239265
<Compile Include="Properties\AssemblyInfo.cs">
240266
<SubType>Code</SubType>
241267
</Compile>
242-
<None Include="cloudfront.crt">
268+
<None Include="app.config" />
269+
<Content Include="cloudfront.crt">
243270
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
244-
</None>
245-
<None Include="cloudfront.pfx">
271+
</Content>
272+
<Content Include="cloudfront.pfx">
246273
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
247-
</None>
274+
</Content>
248275
<None Include="packages.config" />
249-
<None Include="playboundless.crt">
276+
<Content Include="playboundless.crt">
250277
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
251-
</None>
252-
<None Include="playboundless.pfx">
278+
</Content>
279+
<Content Include="playboundless.pfx">
253280
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
254-
</None>
281+
</Content>
282+
<None Include="Properties\app.manifest" />
255283
</ItemGroup>
256284
<ItemGroup>
257-
<BootstrapperPackage Include=".NETFramework,Version=v4.7.2">
285+
<BootstrapperPackage Include=".NETFramework,Version=v4.8">
258286
<Visible>False</Visible>
259-
<ProductName>Microsoft .NET Framework 4.7.2 %28x86 and x64%29</ProductName>
287+
<ProductName>Microsoft .NET Framework 4.8 %28x86 and x64%29</ProductName>
260288
<Install>true</Install>
261289
</BootstrapperPackage>
262290
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
@@ -265,6 +293,21 @@
265293
<Install>false</Install>
266294
</BootstrapperPackage>
267295
</ItemGroup>
296+
<ItemGroup>
297+
<Resource Include="boundlessmodding2.ico" />
298+
</ItemGroup>
299+
<ItemGroup>
300+
<PublishFile Include="BoundlessProxyUi.exe.config">
301+
<Visible>False</Visible>
302+
<Group>
303+
</Group>
304+
<TargetPath>
305+
</TargetPath>
306+
<PublishState>Auto</PublishState>
307+
<IncludeHash>False</IncludeHash>
308+
<FileType>File</FileType>
309+
</PublishFile>
310+
</ItemGroup>
268311
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
269312
<PropertyGroup>
270313
<PostBuildEvent>

BoundlessProxyUi/Properties/AssemblyInfo.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -49,5 +49,5 @@
4949
// You can specify all the values or you can default the Build and Revision Numbers
5050
// by using the '*' as shown below:
5151
// [assembly: AssemblyVersion("1.0.*")]
52-
[assembly: AssemblyVersion("1.4.0.0")]
53-
[assembly: AssemblyFileVersion("1.4.0.0")]
52+
[assembly: AssemblyVersion("1.4.0.1")]
53+
[assembly: AssemblyFileVersion("1.4.0.1")]
+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
3+
<assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
4+
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
5+
<security>
6+
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
7+
<!-- UAC Manifest Options
8+
If you want to change the Windows User Account Control level replace the
9+
requestedExecutionLevel node with one of the following.
10+
11+
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
12+
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
13+
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
14+
15+
Specifying requestedExecutionLevel element will disable file and registry virtualization.
16+
Remove this element if your application requires this virtualization for backwards
17+
compatibility.
18+
-->
19+
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
20+
</requestedPrivileges>
21+
<applicationRequestMinimum>
22+
<PermissionSet class="System.Security.PermissionSet" version="1" Unrestricted="true" ID="Custom" SameSite="site" />
23+
<defaultAssemblyRequest permissionSetReference="Custom" />
24+
</applicationRequestMinimum>
25+
</security>
26+
</trustInfo>
27+
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
28+
<application>
29+
<!-- A list of the Windows versions that this application has been tested on
30+
and is designed to work with. Uncomment the appropriate elements
31+
and Windows will automatically select the most compatible environment. -->
32+
<!-- Windows Vista -->
33+
<!--<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}" />-->
34+
<!-- Windows 7 -->
35+
<!--<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}" />-->
36+
<!-- Windows 8 -->
37+
<!--<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}" />-->
38+
<!-- Windows 8.1 -->
39+
<!--<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}" />-->
40+
<!-- Windows 10 -->
41+
<!--<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}" />-->
42+
</application>
43+
</compatibility>
44+
<!-- Indicates that the application is DPI-aware and will not be automatically scaled by Windows at higher
45+
DPIs. Windows Presentation Foundation (WPF) applications are automatically DPI-aware and do not need
46+
to opt in. Windows Forms applications targeting .NET Framework 4.6 that opt into this setting, should
47+
also set the 'EnableWindowsFormsHighDpiAutoResizing' setting to 'true' in their app.config. -->
48+
<!--
49+
<application xmlns="urn:schemas-microsoft-com:asm.v3">
50+
<windowsSettings>
51+
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
52+
</windowsSettings>
53+
</application>
54+
-->
55+
<!-- Enable themes for Windows common controls and dialogs (Windows XP and later) -->
56+
<!--
57+
<dependency>
58+
<dependentAssembly>
59+
<assemblyIdentity
60+
type="win32"
61+
name="Microsoft.Windows.Common-Controls"
62+
version="6.0.0.0"
63+
processorArchitecture="*"
64+
publicKeyToken="6595b64144ccf1df"
65+
language="*"
66+
/>
67+
</dependentAssembly>
68+
</dependency>
69+
-->
70+
</assembly>

BoundlessProxyUi/Util/EventHandler.cs BoundlessProxyUi/Util/WsEventHander.cs

+5
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,11 @@ private void HandleWorldControlJson(int planetId, string planetDisplayName, WsMe
181181
var result = ParseWorldControlJson(planetId, message.Buffer, offset);
182182
jsonString = result.Item1;
183183
isSimple = result.Item2;
184+
185+
if (isSimple)
186+
{
187+
return;
188+
}
184189
}
185190
catch (Exception ex) {
186191
Log.Error(ex, "Error decoding World Control message");

BoundlessProxyUi/app.config

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<configuration>
3+
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8"/></startup></configuration>
25.4 KB
Binary file not shown.

0 commit comments

Comments
 (0)