Build final artifacts even on a pull request

FFmpeg only gets downloaded on tagged builds

makeappx's standard output is also redirected to console
This commit is contained in:
Charles Milette 2018-03-19 13:44:57 -04:00
parent 10b4f25d81
commit f6e58e7e5f
No known key found for this signature in database
GPG key ID: 9BC74CC51CB137CE
2 changed files with 61 additions and 21 deletions

View file

@ -1,18 +1,28 @@
if ($env:APPVEYOR_PULL_REQUEST_NUMBER -eq $null)
if ($env:APPVEYOR_REPO_TAG -eq $true)
{
if ($env:CONFIGURATION -eq "Release")
if ($env:CONFIGURATION -eq "Steam")
{
& "ShareX.Setup\bin\Release\ShareX.Setup.exe" -AppVeyorRelease
& "ShareX.Setup\bin\Steam\ShareX.Setup.exe" -AppVeyorSteamRelease
}
elseif ($env:APPVEYOR_REPO_TAG -eq $true)
elseif ($env:CONFIGURATION -eq "WindowsStore")
{
if ($env:CONFIGURATION -eq "Steam")
{
& "ShareX.Setup\bin\Steam\ShareX.Setup.exe" -AppVeyorSteam
}
elseif ($env:CONFIGURATION -eq "WindowsStore")
{
& "ShareX.Setup\bin\WindowsStore\ShareX.Setup.exe" -AppVeyorWindowsStore
}
& "ShareX.Setup\bin\WindowsStore\ShareX.Setup.exe" -AppVeyorWindowsStoreRelease
}
}
elseif ($env:CONFIGURATION -eq "Release")
{
& "ShareX.Setup\bin\Release\ShareX.Setup.exe" -AppVeyorRelease
}
elseif ($env:CONFIGURATION -eq "Steam")
{
& "ShareX.Setup\bin\Steam\ShareX.Setup.exe" -AppVeyorSteam
}
elseif ($env:CONFIGURATION -eq "WindowsStore")
{
& "ShareX.Setup\bin\WindowsStore\ShareX.Setup.exe" -AppVeyorWindowsStore
}
if ($env:APPVEYOR_PULL_REQUEST_NUMBER -ne $null)
{
Remove-Item -Recurse -Force "Output"
}

View file

@ -47,6 +47,7 @@ private enum SetupJobs
CreateWindowsStoreFolder = 1 << 6,
CreateWindowsStoreDebugFolder = 1 << 7,
CompileAppx = 1 << 8,
DownloadFFmpeg = 1 << 9,
Stable = CreateSetup | CreatePortable | OpenOutputDirectory,
Setup = CreateSetup | OpenOutputDirectory,
@ -58,7 +59,9 @@ private enum SetupJobs
Beta = CreateSetup | UploadOutputFile,
AppVeyorRelease = CreateSetup | CreatePortable,
AppVeyorSteam = CreateSteamFolder,
AppVeyorWindowsStore = CreateWindowsStoreFolder | CompileAppx
AppVeyorWindowsStore = CreateWindowsStoreFolder | CompileAppx,
AppVeyorSteamRelease = AppVeyorSteam | DownloadFFmpeg,
AppVeyorWindowsStoreRelease = AppVeyorWindowsStore | DownloadFFmpeg
}
private static SetupJobs Job = SetupJobs.Stable;
@ -113,6 +116,16 @@ private static void Main(string[] args)
AppVeyor = true;
Job = SetupJobs.AppVeyorWindowsStore;
}
else if (SetupHelpers.CheckArguments(args, "-AppVeyorSteamRelease"))
{
AppVeyor = true;
Job = SetupJobs.AppVeyorSteamRelease;
}
else if (SetupHelpers.CheckArguments(args, "-AppVeyorWindowsStoreRelease"))
{
AppVeyor = true;
Job = SetupJobs.AppVeyorWindowsStoreRelease;
}
Console.WriteLine("Setup job: " + Job);
@ -136,11 +149,21 @@ private static void Main(string[] args)
if (Job.HasFlag(SetupJobs.CreateSteamFolder))
{
CreateSteamFolder();
if (Job.HasFlag(SetupJobs.DownloadFFmpeg))
{
CopyFFmpeg(SteamUpdatesDir, true, true);
}
}
if (Job.HasFlag(SetupJobs.CreateWindowsStoreFolder))
{
CreateFolder(WindowsStoreDir, WindowsStoreOutputDir, SetupJobs.CreateWindowsStoreFolder);
if (Job.HasFlag(SetupJobs.DownloadFFmpeg))
{
CopyFFmpeg(WindowsStoreOutputDir, false, true);
}
}
if (Job.HasFlag(SetupJobs.CreateWindowsStoreDebugFolder))
@ -150,8 +173,20 @@ private static void Main(string[] args)
if (Job.HasFlag(SetupJobs.CompileAppx))
{
Process.Start(@"C:\Program Files (x86)\Windows Kits\10\bin\x64\makeappx.exe",
$"pack /d \"{WindowsStoreOutputDir}\" /p \"{WindowsStoreAppxPath}\" /l /o").WaitForExit();
Process p = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = @"C:\Program Files (x86)\Windows Kits\10\bin\x64\makeappx.exe",
Arguments = $"pack /d \"{WindowsStoreOutputDir}\" /p \"{WindowsStoreAppxPath}\" /l /o",
UseShellExecute = false,
RedirectStandardOutput = true
}
};
p.OutputDataReceived += (s, e) => Console.WriteLine(e.Data);
p.Start();
p.BeginOutputReadLine();
p.WaitForExit();
Directory.Delete(WindowsStoreOutputDir, true);
}
@ -267,11 +302,7 @@ private static void CreateFolder(string source, string destination, SetupJobs jo
Helpers.CopyAll(Path.Combine(ParentDir, @"ShareX.ScreenCaptureLib\Stickers"), Path.Combine(destination, "Stickers"));
if (job == SetupJobs.CreateSteamFolder)
{
CopyFFmpeg(destination, true, true);
}
else if (job == SetupJobs.CreatePortableAppsFolder)
if (job == SetupJobs.CreatePortableAppsFolder)
{
Helpers.CreateEmptyFile(Path.Combine(destination, "PortableApps"));
}
@ -279,7 +310,6 @@ private static void CreateFolder(string source, string destination, SetupJobs jo
{
SetupHelpers.CopyFile(Path.Combine(DesktopBridgeHelperDir, "ShareX_DesktopBridgeHelper.exe"), destination);
Helpers.CopyAll(WindowsStorePackageFilesDir, destination);
CopyFFmpeg(destination, false, true);
}
else if (job == SetupJobs.CreatePortable)
{