mirror of
https://jihulab.com/DGP-Studio/Snap.Hutao.git
synced 2025-11-19 21:02:53 +08:00
Hello cake
This commit is contained in:
12
.config/dotnet-tools.json
Normal file
12
.config/dotnet-tools.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"version": 1,
|
||||||
|
"isRoot": true,
|
||||||
|
"tools": {
|
||||||
|
"cake.tool": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"commands": [
|
||||||
|
"dotnet-cake"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -30,7 +30,7 @@ pr:
|
|||||||
- .github/ISSUE_TEMPLATE/*.yml
|
- .github/ISSUE_TEMPLATE/*.yml
|
||||||
- .github/workflows/*.yml
|
- .github/workflows/*.yml
|
||||||
- src/Snap.Hutao/Snap.Hutao/Resource/Localization/*.resx
|
- src/Snap.Hutao/Snap.Hutao/Resource/Localization/*.resx
|
||||||
|
|
||||||
|
|
||||||
pool:
|
pool:
|
||||||
name: Default
|
name: Default
|
||||||
@@ -58,93 +58,10 @@ steps:
|
|||||||
version: '8.x'
|
version: '8.x'
|
||||||
includePreviewVersions: true
|
includePreviewVersions: true
|
||||||
|
|
||||||
- task: NuGetToolInstaller@1
|
|
||||||
name: 'NuGetToolInstaller'
|
|
||||||
displayName: 'NuGet Installer'
|
|
||||||
|
|
||||||
- task: NuGetCommand@2
|
|
||||||
displayName: NuGet restore
|
|
||||||
inputs:
|
|
||||||
command: 'restore'
|
|
||||||
restoreSolution: '$(solution)'
|
|
||||||
feedsToUse: 'config'
|
|
||||||
nugetConfigPath: '$(Build.SourcesDirectory)/NuGet.Config'
|
|
||||||
|
|
||||||
- task: MsixPackaging@1
|
|
||||||
displayName: Build binary package
|
|
||||||
inputs:
|
|
||||||
outputPath: '$(Build.ArtifactStagingDirectory)/'
|
|
||||||
solution: '$(solution)'
|
|
||||||
clean: false
|
|
||||||
generateBundle: false
|
|
||||||
buildConfiguration: 'Release'
|
|
||||||
buildPlatform: 'x64'
|
|
||||||
updateAppVersion: false
|
|
||||||
appPackageDistributionMode: 'SideloadOnly'
|
|
||||||
msbuildLocationMethod: 'location'
|
|
||||||
msbuildLocation: 'C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Msbuild\Current\Bin\MSBuild.exe'
|
|
||||||
|
|
||||||
- task: MagicChunks@2
|
|
||||||
inputs:
|
|
||||||
sourcePath: '$(Build.SourcesDirectory)\src\Snap.Hutao\Snap.Hutao\bin\x64\Release\net8.0-windows10.0.22621.0\win-x64\AppxManifest.xml'
|
|
||||||
fileType: 'Xml'
|
|
||||||
targetPathType: 'source'
|
|
||||||
transformationType: 'json'
|
|
||||||
transformations: |
|
|
||||||
{
|
|
||||||
"Package/Identity/@Name": "7f0db578-026f-4e0b-a75b-d5d06bb0a74c",
|
|
||||||
"Package/Identity/@Publisher": "CN=DGP Studio CI",
|
|
||||||
"Package/Identity/@Version": "$(build_date).$(rev_number)",
|
|
||||||
"Package/Properties/DisplayName": "胡桃 Alpha",
|
|
||||||
"Package/Properties/PublisherDisplayName":"DGP Studio CI",
|
|
||||||
"Package/Applications/Application/uap:VisualElements/@DisplayName": "胡桃 Alpha"
|
|
||||||
}
|
|
||||||
|
|
||||||
- task: CmdLine@2
|
- task: CmdLine@2
|
||||||
displayName: Create resources folder
|
displayName: dotnet cake
|
||||||
inputs:
|
inputs:
|
||||||
script: |
|
script: dotnet tool restore && dotnet cake --Version=$(build_date).$(rev_number) --pw=$(pw)
|
||||||
mkdir Assets
|
|
||||||
|
|
||||||
mkdir Resource
|
|
||||||
workingDirectory: '$(Build.SourcesDirectory)\src\Snap.Hutao\Snap.Hutao\bin\x64\Release\net8.0-windows10.0.22621.0\win-x64'
|
|
||||||
|
|
||||||
|
|
||||||
- task: CopyFiles@2
|
|
||||||
displayName: Copy Assets Folder
|
|
||||||
inputs:
|
|
||||||
SourceFolder: '$(Build.SourcesDirectory)\src\Snap.Hutao\Snap.Hutao\Assets'
|
|
||||||
Contents: '**'
|
|
||||||
TargetFolder: '$(Build.SourcesDirectory)\src\Snap.Hutao\Snap.Hutao\bin\x64\Release\net8.0-windows10.0.22621.0\win-x64\Assets'
|
|
||||||
|
|
||||||
- task: CopyFiles@2
|
|
||||||
displayName: Copy Resource Folder
|
|
||||||
inputs:
|
|
||||||
SourceFolder: '$(Build.SourcesDirectory)\src\Snap.Hutao\Snap.Hutao\Resource'
|
|
||||||
Contents: '**'
|
|
||||||
TargetFolder: '$(Build.SourcesDirectory)\src\Snap.Hutao\Snap.Hutao\bin\x64\Release\net8.0-windows10.0.22621.0\win-x64\Resource'
|
|
||||||
|
|
||||||
- task: CmdLine@2
|
|
||||||
displayName: Build MSIX
|
|
||||||
inputs:
|
|
||||||
script: '"C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x64\makeappx.exe" pack /d $(Build.SourcesDirectory)\src\Snap.Hutao\Snap.Hutao\bin\x64\Release\net8.0-windows10.0.22621.0\win-x64 /p $(Build.ArtifactStagingDirectory)/Snap.Hutao.Alpha-$(build_date).$(rev_number).msix'
|
|
||||||
|
|
||||||
- task: MsixSigning@1
|
|
||||||
name: signMsix
|
|
||||||
displayName: Sign MSIX package
|
|
||||||
inputs:
|
|
||||||
package: '$(Build.ArtifactStagingDirectory)/Snap.Hutao.Alpha-$(build_date).$(rev_number).msix'
|
|
||||||
certificate: 'DGP_Studio_CI.pfx'
|
|
||||||
passwordVariable: 'pw'
|
|
||||||
condition: succeeded()
|
|
||||||
|
|
||||||
|
|
||||||
#- task: PublishPipelineArtifact@1
|
|
||||||
# displayName: 'Upload Output'
|
|
||||||
# inputs:
|
|
||||||
# targetPath: '$(Build.ArtifactStagingDirectory)/'
|
|
||||||
# artifact: 'Output'
|
|
||||||
# publishLocation: 'pipeline'
|
|
||||||
|
|
||||||
- task: DownloadSecureFile@1
|
- task: DownloadSecureFile@1
|
||||||
name: cerFile
|
name: cerFile
|
||||||
@@ -152,10 +69,15 @@ steps:
|
|||||||
inputs:
|
inputs:
|
||||||
secureFile: 'Snap.Hutao.CI.cer'
|
secureFile: 'Snap.Hutao.CI.cer'
|
||||||
|
|
||||||
|
- task: DownloadSecureFile@1
|
||||||
|
displayName: Download PFX
|
||||||
|
inputs:
|
||||||
|
secureFile: 'DGP_Studio_CI.pfx'
|
||||||
|
|
||||||
- task: GitHubRelease@1
|
- task: GitHubRelease@1
|
||||||
inputs:
|
inputs:
|
||||||
gitHubConnection: 'github.com_Masterain'
|
gitHubConnection: 'github.com_Masterain'
|
||||||
repositoryName: 'DGP-Studio/Snap.Hutao'
|
repositoryName: 'DGP-Studio/Snap.Hutao.CI.Test'
|
||||||
action: 'create'
|
action: 'create'
|
||||||
target: '$(Build.SourceVersion)'
|
target: '$(Build.SourceVersion)'
|
||||||
tagSource: 'userSpecifiedTag'
|
tagSource: 'userSpecifiedTag'
|
||||||
|
|||||||
128
build.cake
Normal file
128
build.cake
Normal file
@@ -0,0 +1,128 @@
|
|||||||
|
#tool "nuget:?package=nuget.commandline&version=6.5.0"
|
||||||
|
var target = Argument("target", "Build");
|
||||||
|
var configuration = Argument("configuration", "Release");
|
||||||
|
|
||||||
|
var version = HasArgument("Version") ? Argument<string>("Version") : throw new Exception("Empty Version");
|
||||||
|
var pw = HasArgument("pw") ? Argument<string>("pw") : throw new Exception("Empty pw");
|
||||||
|
|
||||||
|
var solution = System.IO.Path.Combine(AzurePipelines.Environment.Build.SourcesDirectory.FullPath, "src", "Snap.Hutao", "Snap.Hutao.sln");
|
||||||
|
var project = System.IO.Path.Combine(AzurePipelines.Environment.Build.SourcesDirectory.FullPath, "src", "Snap.Hutao", "Snap.Hutao", "Snap.Hutao.csproj");
|
||||||
|
var binPath = System.IO.Path.Combine(AzurePipelines.Environment.Build.SourcesDirectory.FullPath, "src", "Snap.Hutao", "Snap.Hutao", "bin", "x64", "Release", "net8.0-windows10.0.22621.0", "win-x64");
|
||||||
|
var outputPath = AzurePipelines.Environment.Build.ArtifactStagingDirectory.FullPath;
|
||||||
|
|
||||||
|
Task("Build")
|
||||||
|
.IsDependentOn("Build binary package")
|
||||||
|
.IsDependentOn("Copy files")
|
||||||
|
.IsDependentOn("Build MSIX")
|
||||||
|
.IsDependentOn("Sign MSIX");
|
||||||
|
|
||||||
|
Task("NuGet Restore")
|
||||||
|
.Does(() =>
|
||||||
|
{
|
||||||
|
Information("Restoring packages...");
|
||||||
|
DotNetRestore(project, new DotNetRestoreSettings
|
||||||
|
{
|
||||||
|
Verbosity = DotNetVerbosity.Detailed,
|
||||||
|
Interactive = false,
|
||||||
|
ConfigFile = System.IO.Path.Combine(AzurePipelines.Environment.Build.SourcesDirectory.FullPath, "NuGet.Config")
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
Task("Generate AppxManifest")
|
||||||
|
.Does(() =>
|
||||||
|
{
|
||||||
|
Information("Generating AppxManifest...");
|
||||||
|
|
||||||
|
var manifestPath = System.IO.Path.Combine(AzurePipelines.Environment.Build.SourcesDirectory.FullPath, "src", "Snap.Hutao", "Snap.Hutao", "Package.appxmanifest");
|
||||||
|
var manifest = System.IO.File.ReadAllText(manifestPath);
|
||||||
|
|
||||||
|
manifest = manifest
|
||||||
|
.Replace("Snap Hutao", "Snap Hutao Alpha")
|
||||||
|
.Replace("胡桃", "胡桃 Alpha")
|
||||||
|
.Replace("DGP Studio", "DGP Studio CI");
|
||||||
|
manifest = System.Text.RegularExpressions.Regex.Replace(manifest, " Name=\"([^\"]*)\"", " Name=\"7f0db578-026f-4e0b-a75b-d5d06bb0a74c\"");
|
||||||
|
manifest = System.Text.RegularExpressions.Regex.Replace(manifest, " Publisher=\"([^\"]*)\"", " Publisher=\"CN=DGP Studio CI\"");
|
||||||
|
manifest = System.Text.RegularExpressions.Regex.Replace(manifest, " Version=\"([0-9\\.]+)\"", $" Version=\"{version}\"");
|
||||||
|
|
||||||
|
System.IO.File.WriteAllText(manifestPath, manifest);
|
||||||
|
|
||||||
|
Information("Generated.");
|
||||||
|
});
|
||||||
|
|
||||||
|
Task("Build binary package")
|
||||||
|
.IsDependentOn("NuGet Restore")
|
||||||
|
.IsDependentOn("Generate AppxManifest")
|
||||||
|
.Does(() =>
|
||||||
|
{
|
||||||
|
Information("Building binary package...");
|
||||||
|
|
||||||
|
var settings = new DotNetBuildSettings
|
||||||
|
{
|
||||||
|
Configuration = configuration
|
||||||
|
};
|
||||||
|
|
||||||
|
settings.MSBuildSettings = new DotNetMSBuildSettings
|
||||||
|
{
|
||||||
|
ArgumentCustomization = args => args.Append("/p:Platform=x64")
|
||||||
|
.Append("/p:UapAppxPackageBuildMode=SideloadOnly")
|
||||||
|
.Append("/p:AppxPackageSigningEnabled=false")
|
||||||
|
.Append("/p:AppxBundle=Never")
|
||||||
|
.Append("/p:AppxPackageOutput=" + outputPath)
|
||||||
|
};
|
||||||
|
|
||||||
|
DotNetBuild(project, settings);
|
||||||
|
});
|
||||||
|
|
||||||
|
Task("Copy files")
|
||||||
|
.IsDependentOn("Build binary package")
|
||||||
|
.Does(() =>
|
||||||
|
{
|
||||||
|
Information("Copying assets...");
|
||||||
|
CopyDirectory(
|
||||||
|
System.IO.Path.Combine(AzurePipelines.Environment.Build.SourcesDirectory.FullPath, "src", "Snap.Hutao", "Snap.Hutao", "Assets"),
|
||||||
|
System.IO.Path.Combine(binPath, "Assets")
|
||||||
|
);
|
||||||
|
|
||||||
|
Information("Copying resource...");
|
||||||
|
CopyDirectory(
|
||||||
|
System.IO.Path.Combine(AzurePipelines.Environment.Build.SourcesDirectory.FullPath, "src", "Snap.Hutao", "Snap.Hutao", "Resource"),
|
||||||
|
System.IO.Path.Combine(binPath, "Resource")
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|
||||||
|
Task("Build MSIX")
|
||||||
|
.IsDependentOn("Build binary package")
|
||||||
|
.IsDependentOn("Copy files")
|
||||||
|
.Does(() =>
|
||||||
|
{
|
||||||
|
var p = StartProcess(
|
||||||
|
"C:\\Program Files (x86)\\Windows Kits\\10\\bin\\10.0.22621.0\\x64\\makeappx.exe",
|
||||||
|
new ProcessSettings
|
||||||
|
{
|
||||||
|
Arguments = "pack /d " + binPath + " /p " + System.IO.Path.Combine(outputPath, $"Snap.Hutao.Alpha-{version}.msix")
|
||||||
|
}
|
||||||
|
);
|
||||||
|
if (p != 0)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("Build failed with exit code " + p);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
Task("Sign MSIX")
|
||||||
|
.IsDependentOn("Build MSIX")
|
||||||
|
.Does(() =>
|
||||||
|
{
|
||||||
|
var p = StartProcess(
|
||||||
|
"C:\\Program Files (x86)\\Windows Kits\\10\\bin\\10.0.22621.0\\x64\\signtool.exe",
|
||||||
|
new ProcessSettings
|
||||||
|
{
|
||||||
|
Arguments = "sign /debug /v /a /fd SHA256 /f " + System.IO.Path.Combine(AzurePipelines.Environment.Agent.HomeDirectory.FullPath, "_work", "_temp", "DGP_Studio_CI.pfx") + " /p " + pw + " " + System.IO.Path.Combine(outputPath, $"Snap.Hutao.Alpha-{version}.msix")
|
||||||
|
}
|
||||||
|
);
|
||||||
|
if (p != 0)
|
||||||
|
{
|
||||||
|
throw new InvalidOperationException("Build failed with exit code " + p);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
RunTarget(target);
|
||||||
Reference in New Issue
Block a user