Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Build

on:
push:
branches: [ main, develop ]
pull_request:
branches: [ main, develop ]

jobs:
build:
runs-on: windows-latest
permissions:
contents: read
packages: read

steps:
- uses: actions/checkout@v4

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.x'

- name: Configure NuGet sources
run: |
dotnet nuget add source https://nuget.pkg.github.com/Duckov-Custom-Model/index.json --name github --username Duckov-Custom-Model --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text

- name: Restore dependencies
run: dotnet restore
env:
CI: true
GITHUB_ACTIONS: true

- name: Build
run: dotnet build --configuration Release --no-restore
env:
CI: true
GITHUB_ACTIONS: true

- name: Test (if any)
run: dotnet test --configuration Release --no-build --verbosity normal
continue-on-error: true

- name: Upload Build Artifacts
uses: actions/upload-artifact@v4
with:
name: DuckovCustomModel
path: DuckovCustomModel/bin/Release/netstandard2.1
retention-days: 7

64 changes: 64 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
name: Release

on:
push:
tags:
- '*.*.*'
- '*.*.*-*'

jobs:
build-and-release:
runs-on: windows-latest
permissions:
contents: write
packages: read

steps:
- uses: actions/checkout@v4

- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '10.x'

- name: Configure NuGet sources
run: |
dotnet nuget add source https://nuget.pkg.github.com/Duckov-Custom-Model/index.json --name github --username Duckov-Custom-Model --password ${{ secrets.GITHUB_TOKEN }} --store-password-in-clear-text

- name: Restore dependencies
run: dotnet restore
env:
CI: true
GITHUB_ACTIONS: true

- name: Build
run: dotnet build --configuration Release --no-restore
env:
CI: true
GITHUB_ACTIONS: true

- name: Create Release Package
run: |
cd DuckovCustomModel
dotnet build --configuration Release --no-restore
continue-on-error: false
env:
CI: true
GITHUB_ACTIONS: true

- name: Upload Release Artifacts
uses: actions/upload-artifact@v4
with:
name: release-package
path: |
DuckovCustomModel/bin/Release/*.zip
retention-days: 30

- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
files: DuckovCustomModel/bin/Release/*.zip
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

15 changes: 13 additions & 2 deletions DuckovCustomModel/DuckovCustomModel.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,18 @@
<DuckovPath>E:\SteamLibrary\steamapps\common\Escape from Duckov</DuckovPath>
</PropertyGroup>

<ItemGroup>
<PropertyGroup>
<UseGameLibsFromNuGet Condition="'$(CI)' == 'true' OR '$(GITHUB_ACTIONS)' == 'true' OR '$(UseGameLibsFromNuGet)' == 'true'">true</UseGameLibsFromNuGet>
<UseGameLibsFromNuGet Condition="'$(UseGameLibsFromNuGet)' == ''">false</UseGameLibsFromNuGet>
</PropertyGroup>

<!-- CI 环境使用 NuGet 包 -->
<ItemGroup Condition="'$(UseGameLibsFromNuGet)' == 'true'">
<PackageReference Include="DuckovGameLibs" Version="1.1.6-Steam" />
</ItemGroup>

<!-- 本地开发使用游戏目录 -->
<ItemGroup Condition="'$(UseGameLibsFromNuGet)' == 'false'">
<Reference Include="$(DuckovPath)\Duckov_Data\Managed\TeamSoda.*">
<Private>False</Private>
</Reference>
Expand Down Expand Up @@ -58,7 +69,7 @@
</None>
</ItemGroup>

<Target Name="PackageRelease" BeforeTargets="PostBuildEvent" Condition="'$(Configuration)' == 'Release'"
<Target Name="PackageRelease" BeforeTargets="PostBuildEvent" Condition="'$(Configuration)' == 'Release' AND '$(CI)' != 'true' AND '$(GITHUB_ACTIONS)' != 'true'"
Inputs="$(OutputPath)**\*;$(MSBuildProjectDirectory)\info.ini"
Outputs="$([System.IO.Path]::Combine($([System.IO.Path]::GetFullPath($(OutputPath)..\)), '$(AssemblyName).zip'))">
<PropertyGroup>
Expand Down
13 changes: 12 additions & 1 deletion DuckovCustomModelRegister/DuckovCustomModelRegister.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,18 @@
<DuckovPath>E:\SteamLibrary\steamapps\common\Escape from Duckov</DuckovPath>
</PropertyGroup>

<ItemGroup>
<PropertyGroup>
<UseGameLibsFromNuGet Condition="'$(CI)' == 'true' OR '$(GITHUB_ACTIONS)' == 'true' OR '$(UseGameLibsFromNuGet)' == 'true'">true</UseGameLibsFromNuGet>
<UseGameLibsFromNuGet Condition="'$(UseGameLibsFromNuGet)' == ''">false</UseGameLibsFromNuGet>
</PropertyGroup>

<!-- CI 环境使用 NuGet 包 -->
<ItemGroup Condition="'$(UseGameLibsFromNuGet)' == 'true'">
<PackageReference Include="DuckovGameLibs" Version="1.1.6-Steam" />
</ItemGroup>

<!-- 本地开发使用游戏目录 -->
<ItemGroup Condition="'$(UseGameLibsFromNuGet)' == 'false'">
<Reference Include="$(DuckovPath)\Duckov_Data\Managed\TeamSoda.*">
<Private>False</Private>
</Reference>
Expand Down