using CliWrap.Buffered; using ParallelPipelines.Application.Attributes; using ParallelPipelines.Domain.Entities; using ParallelPipelines.Host.Helpers; namespace Deploy.Steps; [DependsOnStep] [DependsOnStep] public class CreateWindowsArm64Release : IStep { public async Task RunStep(CancellationToken cancellationToken) { var godotPublishDirectory = await PipelineFileHelper.GitRootDirectory.GetDirectory("./artifacts/publish-godot"); godotPublishDirectory.Create(); var windowsPublishDirectory = await godotPublishDirectory.GetDirectory("./win-arm64"); windowsPublishDirectory.Create(); var godotProjectFile = await PipelineFileHelper.GitRootDirectory.GetFile("./src/SharpIDE.Godot/project.godot"); var godotExportResult = await PipelineCliHelper.RunCliCommandAsync( "godot", $"--headless --verbose --export-release Windows-arm64 --project {godotProjectFile.GetFullNameUnix()}", cancellationToken ); var windowsZipFile = await windowsPublishDirectory.ZipDirectoryToFile($"{PipelineFileHelper.GitRootDirectory.FullName}/artifacts/publish-godot/sharpide-win-arm64.zip"); return [godotExportResult]; } }