Fix debian packages
This commit is contained in:
parent
92b3ad0001
commit
97a01213ac
13 changed files with 222 additions and 121 deletions
|
@ -28,9 +28,8 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
"debian_dependencies":{
|
"debian_dependencies":{
|
||||||
"libssl1.0.0" : {},
|
|
||||||
"clang-3.5" : {},
|
"clang-3.5" : {},
|
||||||
"libcurl3" : {}
|
"SHARED_FRAMEWORK_NUGET_NAME" : {}
|
||||||
},
|
},
|
||||||
|
|
||||||
"package_conflicts" : [
|
"package_conflicts" : [
|
||||||
|
@ -38,7 +37,6 @@
|
||||||
],
|
],
|
||||||
|
|
||||||
"symlinks": {
|
"symlinks": {
|
||||||
"bin/dotnet" : "usr/bin/dotnet",
|
|
||||||
"bin/dotnet-compile-native" : "/usr/bin/dotnet-compile-native"
|
"bin/dotnet-compile-native" : "/usr/bin/dotnet-compile-native"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,9 +28,8 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
"debian_dependencies":{
|
"debian_dependencies":{
|
||||||
"libssl1.0.0" : {},
|
|
||||||
"clang-3.5" : {},
|
"clang-3.5" : {},
|
||||||
"libcurl3" : {}
|
"SHARED_FRAMEWORK_NUGET_NAME" : {}
|
||||||
},
|
},
|
||||||
|
|
||||||
"package_conflicts" : [
|
"package_conflicts" : [
|
||||||
|
|
|
@ -31,5 +31,9 @@
|
||||||
"debian_dependencies":{
|
"debian_dependencies":{
|
||||||
"libssl-dev" : {},
|
"libssl-dev" : {},
|
||||||
"libcurl3" : {}
|
"libcurl3" : {}
|
||||||
|
},
|
||||||
|
|
||||||
|
"symlinks": {
|
||||||
|
"dotnet" : "/usr/bin/dotnet"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,6 +29,7 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
"debian_dependencies":{
|
"debian_dependencies":{
|
||||||
|
"dotnet-host" : {},
|
||||||
"libssl1.0.0" : {},
|
"libssl1.0.0" : {},
|
||||||
"libcurl3" : {}
|
"libcurl3" : {}
|
||||||
}
|
}
|
||||||
|
|
172
scripts/dotnet-cli-build/DebTargets.cs
Normal file
172
scripts/dotnet-cli-build/DebTargets.cs
Normal file
|
@ -0,0 +1,172 @@
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
|
using System.IO.Compression;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using Microsoft.DotNet.Cli.Build.Framework;
|
||||||
|
using Microsoft.Extensions.PlatformAbstractions;
|
||||||
|
|
||||||
|
using static Microsoft.DotNet.Cli.Build.Framework.BuildHelpers;
|
||||||
|
|
||||||
|
namespace Microsoft.DotNet.Cli.Build
|
||||||
|
{
|
||||||
|
public class DebTargets
|
||||||
|
{
|
||||||
|
[Target(nameof(GenerateSharedHostDeb),
|
||||||
|
nameof(GenerateSharedFrameworkDeb),
|
||||||
|
nameof(GenerateSdkDeb))]
|
||||||
|
[BuildPlatforms(BuildPlatform.Ubuntu)]
|
||||||
|
public static BuildTargetResult GenerateDebs(BuildTargetContext c)
|
||||||
|
{
|
||||||
|
return c.Success();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Target]
|
||||||
|
[BuildPlatforms(BuildPlatform.Ubuntu)]
|
||||||
|
public static BuildTargetResult GenerateSdkDeb(BuildTargetContext c)
|
||||||
|
{
|
||||||
|
var channel = c.BuildContext.Get<string>("Channel").ToLower();
|
||||||
|
var packageName = Monikers.GetDebianPackageName(c);
|
||||||
|
var version = c.BuildContext.Get<BuildVersion>("BuildVersion").SimpleVersion;
|
||||||
|
var debFile = c.BuildContext.Get<string>("SdkInstallerFile");
|
||||||
|
var manPagesDir = Path.Combine(Dirs.RepoRoot, "Documentation", "manpages");
|
||||||
|
var previousVersionURL = $"https://dotnetcli.blob.core.windows.net/dotnet/{channel}/Installers/Latest/dotnet-ubuntu-x64.latest.deb";
|
||||||
|
|
||||||
|
var objRoot = Path.Combine(Dirs.Output, "obj", "debian", "sdk");
|
||||||
|
|
||||||
|
if (Directory.Exists(objRoot))
|
||||||
|
{
|
||||||
|
Directory.Delete(objRoot, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
Directory.CreateDirectory(objRoot);
|
||||||
|
|
||||||
|
Cmd(Path.Combine(Dirs.RepoRoot, "scripts", "package", "package-debian.sh"),
|
||||||
|
"-v", version, "-i", Dirs.Stage2, "-o", debFile, "-p", packageName, "-m", manPagesDir, "--previous-version-url", previousVersionURL, "--obj-root", objRoot)
|
||||||
|
.Execute()
|
||||||
|
.EnsureSuccessful();
|
||||||
|
return c.Success();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Target]
|
||||||
|
[BuildPlatforms(BuildPlatform.Ubuntu)]
|
||||||
|
public static BuildTargetResult GenerateSharedHostDeb(BuildTargetContext c)
|
||||||
|
{
|
||||||
|
var packageName = Monikers.GetDebianSharedHostPackageName(c);
|
||||||
|
var version = c.BuildContext.Get<BuildVersion>("BuildVersion").SimpleVersion;
|
||||||
|
var inputRoot = c.BuildContext.Get<string>("SharedHostPublishRoot");
|
||||||
|
var debFile = c.BuildContext.Get<string>("SharedHostInstallerFile");
|
||||||
|
var objRoot = Path.Combine(Dirs.Output, "obj", "debian", "sharedhost");
|
||||||
|
|
||||||
|
if (Directory.Exists(objRoot))
|
||||||
|
{
|
||||||
|
Directory.Delete(objRoot, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
Directory.CreateDirectory(objRoot);
|
||||||
|
|
||||||
|
Cmd(Path.Combine(Dirs.RepoRoot, "scripts", "package", "package-sharedhost-debian.sh"),
|
||||||
|
"--input", inputRoot, "--output", debFile, "--obj-root", objRoot, "--version", version)
|
||||||
|
.Execute()
|
||||||
|
.EnsureSuccessful();
|
||||||
|
return c.Success();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Target]
|
||||||
|
[BuildPlatforms(BuildPlatform.Ubuntu)]
|
||||||
|
public static BuildTargetResult GenerateSharedFrameworkDeb(BuildTargetContext c)
|
||||||
|
{
|
||||||
|
var packageName = Monikers.GetDebianSharedFrameworkPackageName(c);
|
||||||
|
var version = c.BuildContext.Get<BuildVersion>("BuildVersion").SimpleVersion;
|
||||||
|
var inputRoot = c.BuildContext.Get<string>("SharedFrameworkPublishRoot");
|
||||||
|
var debFile = c.BuildContext.Get<string>("SharedFrameworkInstallerFile");
|
||||||
|
var objRoot = Path.Combine(Dirs.Output, "obj", "debian", "sharedframework");
|
||||||
|
|
||||||
|
if (Directory.Exists(objRoot))
|
||||||
|
{
|
||||||
|
Directory.Delete(objRoot, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
Directory.CreateDirectory(objRoot);
|
||||||
|
|
||||||
|
Cmd(Path.Combine(Dirs.RepoRoot, "scripts", "package", "package-sharedframework-debian.sh"),
|
||||||
|
"--input", inputRoot, "--output", debFile, "--package-name", packageName,
|
||||||
|
"--framework-nuget-name", Monikers.SharedFrameworkName,
|
||||||
|
"--framework-nuget-version", c.BuildContext.Get<string>("SharedFrameworkNugetVersion"),
|
||||||
|
"--obj-root", objRoot, "--version", version)
|
||||||
|
.Execute()
|
||||||
|
.EnsureSuccessful();
|
||||||
|
return c.Success();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Target(nameof(InstallPackages),
|
||||||
|
nameof(RunE2ETest),
|
||||||
|
nameof(RemovePackages))]
|
||||||
|
[BuildPlatforms(BuildPlatform.Ubuntu)]
|
||||||
|
public static BuildTargetResult TestDebInstaller(BuildTargetContext c)
|
||||||
|
{
|
||||||
|
return c.Success();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Target]
|
||||||
|
[BuildPlatforms(BuildPlatform.Ubuntu)]
|
||||||
|
public static BuildTargetResult InstallPackages(BuildTargetContext c)
|
||||||
|
{
|
||||||
|
IEnumerable<string> orderedPackageFiles = new List<string>()
|
||||||
|
{
|
||||||
|
c.BuildContext.Get<string>("SharedHostInstallerFile"),
|
||||||
|
c.BuildContext.Get<string>("SharedFrameworkInstallerFile"),
|
||||||
|
c.BuildContext.Get<string>("SdkInstallerFile")
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach(var fileName in orderedPackageFiles)
|
||||||
|
{
|
||||||
|
Cmd("sudo", "dpkg", "-i", fileName)
|
||||||
|
.Execute()
|
||||||
|
.EnsureSuccessful();
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.Success();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Target]
|
||||||
|
[BuildPlatforms(BuildPlatform.Ubuntu)]
|
||||||
|
public static BuildTargetResult RunE2ETest(BuildTargetContext c)
|
||||||
|
{
|
||||||
|
Directory.SetCurrentDirectory(Path.Combine(Dirs.RepoRoot, "test", "EndToEnd"));
|
||||||
|
|
||||||
|
Cmd("dotnet", "build")
|
||||||
|
.Execute()
|
||||||
|
.EnsureSuccessful();
|
||||||
|
|
||||||
|
var testResultsPath = Path.Combine(Dirs.Output, "obj", "debian", "test", "debian-endtoend-testResults.xml");
|
||||||
|
|
||||||
|
Cmd("dotnet", "test", "-xml", testResultsPath)
|
||||||
|
.Execute()
|
||||||
|
.EnsureSuccessful();
|
||||||
|
|
||||||
|
return c.Success();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Target]
|
||||||
|
[BuildPlatforms(BuildPlatform.Ubuntu)]
|
||||||
|
public static BuildTargetResult RemovePackages(BuildTargetContext c)
|
||||||
|
{
|
||||||
|
IEnumerable<string> orderedPackageFiles = new List<string>()
|
||||||
|
{
|
||||||
|
Monikers.GetDebianPackageName(c),
|
||||||
|
Monikers.GetDebianSharedFrameworkPackageName(c),
|
||||||
|
Monikers.GetDebianSharedHostPackageName(c)
|
||||||
|
};
|
||||||
|
|
||||||
|
foreach(var packageFile in orderedPackageFiles)
|
||||||
|
{
|
||||||
|
Cmd("sudo", "dpkg", "-r", packageFile)
|
||||||
|
.Execute()
|
||||||
|
.EnsureSuccessful();
|
||||||
|
}
|
||||||
|
|
||||||
|
return c.Success();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -14,99 +14,18 @@ namespace Microsoft.DotNet.Cli.Build
|
||||||
{
|
{
|
||||||
[Target(nameof(MsiTargets.GenerateMsis),
|
[Target(nameof(MsiTargets.GenerateMsis),
|
||||||
nameof(MsiTargets.GenerateBundles),
|
nameof(MsiTargets.GenerateBundles),
|
||||||
nameof(PkgTargets.GeneratePkgs))]//,
|
nameof(PkgTargets.GeneratePkgs),
|
||||||
//nameof(InstallerTargets.GenerateDebs))]
|
nameof(DebTargets.GenerateDebs))]
|
||||||
public static BuildTargetResult GenerateInstaller(BuildTargetContext c)
|
public static BuildTargetResult GenerateInstaller(BuildTargetContext c)
|
||||||
{
|
{
|
||||||
return c.Success();
|
return c.Success();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Target(nameof(DebTargets.TestDebInstaller))]
|
||||||
|
public static BuildTargetResult TestInstaller(BuildTargetContext c)
|
||||||
|
|
||||||
[Target(
|
|
||||||
nameof(InstallerTargets.GenerateSdkDeb),
|
|
||||||
nameof(InstallerTargets.GenerateSharedFrameworkDeb),
|
|
||||||
nameof(InstallerTargets.GenerateSharedHostDeb))]
|
|
||||||
[BuildPlatforms(BuildPlatform.Ubuntu)]
|
|
||||||
public static BuildTargetResult GenerateDebs(BuildTargetContext c)
|
|
||||||
{
|
{
|
||||||
return c.Success();
|
return c.Success();
|
||||||
}
|
}
|
||||||
|
|
||||||
[Target]
|
|
||||||
[BuildPlatforms(BuildPlatform.Ubuntu)]
|
|
||||||
public static BuildTargetResult GenerateSdkDeb(BuildTargetContext c)
|
|
||||||
{
|
|
||||||
var channel = c.BuildContext.Get<string>("Channel").ToLower();
|
|
||||||
var packageName = Monikers.GetDebianPackageName(c);
|
|
||||||
var version = c.BuildContext.Get<BuildVersion>("BuildVersion").SimpleVersion;
|
|
||||||
var debFile = c.BuildContext.Get<string>("CombinedFrameworkSDKHostInstallerFile");
|
|
||||||
var input = c.BuildContext.Get<string>("CLISDKRoot");
|
|
||||||
var manPagesDir = Path.Combine(Dirs.RepoRoot, "Documentation", "manpages");
|
|
||||||
var previousVersionURL = $"https://dotnetcli.blob.core.windows.net/dotnet/{channel}/Installers/Latest/dotnet-ubuntu-x64.latest.deb";
|
|
||||||
|
|
||||||
var objRoot = Path.Combine(Dirs.Output, "obj", "debian", "sdk");
|
|
||||||
|
|
||||||
if (Directory.Exists(objRoot))
|
|
||||||
{
|
|
||||||
Directory.Delete(objRoot, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
Directory.CreateDirectory(objRoot);
|
|
||||||
|
|
||||||
Cmd(Path.Combine(Dirs.RepoRoot, "scripts", "package", "package-debian.sh"),
|
|
||||||
"-v", version, "-i", input, "-o", debFile, "-p", packageName, "-m", manPagesDir, "--previous-version-url", previousVersionURL, "--obj-root", objRoot)
|
|
||||||
.Execute()
|
|
||||||
.EnsureSuccessful();
|
|
||||||
return c.Success();
|
|
||||||
}
|
|
||||||
|
|
||||||
[Target]
|
|
||||||
[BuildPlatforms(BuildPlatform.Ubuntu)]
|
|
||||||
public static BuildTargetResult GenerateSharedHostDeb(BuildTargetContext c)
|
|
||||||
{
|
|
||||||
var version = c.BuildContext.Get<BuildVersion>("BuildVersion").SimpleVersion;
|
|
||||||
var inputRoot = c.BuildContext.Get<string>("SharedHostPublishRoot");
|
|
||||||
var debFile = c.BuildContext.Get<string>("SharedHostInstallerFile");
|
|
||||||
var objRoot = Path.Combine(Dirs.Output, "obj", "debian", "sharedhost");
|
|
||||||
|
|
||||||
if (Directory.Exists(objRoot))
|
|
||||||
{
|
|
||||||
Directory.Delete(objRoot, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
Directory.CreateDirectory(objRoot);
|
|
||||||
|
|
||||||
Cmd(Path.Combine(Dirs.RepoRoot, "scripts", "package", "package-sharedhost-debian.sh"),
|
|
||||||
"--input", inputRoot, "--output", debFile, "--obj-root", objRoot, "--version", version)
|
|
||||||
.Execute()
|
|
||||||
.EnsureSuccessful();
|
|
||||||
return c.Success();
|
|
||||||
}
|
|
||||||
|
|
||||||
[Target]
|
|
||||||
[BuildPlatforms(BuildPlatform.Ubuntu)]
|
|
||||||
public static BuildTargetResult GenerateSharedFrameworkDeb(BuildTargetContext c)
|
|
||||||
{
|
|
||||||
var packageName = Monikers.GetDebianSharedFrameworkPackageName(c);
|
|
||||||
var version = c.BuildContext.Get<BuildVersion>("BuildVersion").SimpleVersion;
|
|
||||||
var inputRoot = c.BuildContext.Get<string>("SharedFrameworkPublishRoot");
|
|
||||||
var debFile = c.BuildContext.Get<string>("SharedFrameworkInstallerFile");
|
|
||||||
var objRoot = Path.Combine(Dirs.Output, "obj", "debian", "sharedframework");
|
|
||||||
|
|
||||||
if (Directory.Exists(objRoot))
|
|
||||||
{
|
|
||||||
Directory.Delete(objRoot, true);
|
|
||||||
}
|
|
||||||
|
|
||||||
Directory.CreateDirectory(objRoot);
|
|
||||||
|
|
||||||
Cmd(Path.Combine(Dirs.RepoRoot, "scripts", "package", "package-sharedframework-debian.sh"),
|
|
||||||
"--input", inputRoot, "--output", debFile, "--package-name", packageName,
|
|
||||||
"--framework-nuget-name", Monikers.SharedFrameworkName,
|
|
||||||
"--framework-nuget-version", c.BuildContext.Get<string>("SharedFrameworkNugetVersion"),
|
|
||||||
"--obj-root", objRoot, "--version", version)
|
|
||||||
.Execute()
|
|
||||||
.EnsureSuccessful();
|
|
||||||
return c.Success();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,6 +28,7 @@ namespace Microsoft.DotNet.Cli.Build
|
||||||
nameof(PackageTargets.GenerateVersionBadge),
|
nameof(PackageTargets.GenerateVersionBadge),
|
||||||
nameof(PackageTargets.GenerateCompressedFile),
|
nameof(PackageTargets.GenerateCompressedFile),
|
||||||
nameof(InstallerTargets.GenerateInstaller),
|
nameof(InstallerTargets.GenerateInstaller),
|
||||||
|
nameof(InstallerTargets.TestInstaller),
|
||||||
nameof(PackageTargets.GenerateNugetPackages))]
|
nameof(PackageTargets.GenerateNugetPackages))]
|
||||||
[Environment("DOTNET_BUILD_SKIP_PACKAGING", null, "0", "false")]
|
[Environment("DOTNET_BUILD_SKIP_PACKAGING", null, "0", "false")]
|
||||||
public static BuildTargetResult Package(BuildTargetContext c)
|
public static BuildTargetResult Package(BuildTargetContext c)
|
||||||
|
|
|
@ -47,6 +47,13 @@ namespace Microsoft.DotNet.Cli.Build
|
||||||
return $"dotnet-sharedframework-{SharedFrameworkName}-{sharedFrameworkNugetVersion}".ToLower();
|
return $"dotnet-sharedframework-{SharedFrameworkName}-{sharedFrameworkNugetVersion}".ToLower();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string GetDebianSharedHostPackageName(BuildTargetContext c)
|
||||||
|
{
|
||||||
|
var sharedFrameworkNugetVersion = c.BuildContext.Get<string>("SharedFrameworkNugetVersion");
|
||||||
|
|
||||||
|
return $"dotnet-host".ToLower();
|
||||||
|
}
|
||||||
|
|
||||||
public static string GetOSShortName()
|
public static string GetOSShortName()
|
||||||
{
|
{
|
||||||
string osname = "";
|
string osname = "";
|
||||||
|
|
|
@ -62,6 +62,14 @@ parseargs(){
|
||||||
PREVIOUS_VERSION_URL=$2
|
PREVIOUS_VERSION_URL=$2
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
--framework-nuget-name)
|
||||||
|
SHARED_FRAMEWORK_NUGET_NAME=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
--framework-nuget-version)
|
||||||
|
SHARED_FRAMEWORK_NUGET_VERSION=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
--obj-root)
|
--obj-root)
|
||||||
OBJECT_DIR=$2
|
OBJECT_DIR=$2
|
||||||
shift
|
shift
|
||||||
|
@ -118,6 +126,7 @@ rm -f "$PACKAGE_OUTPUT_DIR/*.deb"
|
||||||
execute_build(){
|
execute_build(){
|
||||||
create_empty_debian_layout
|
create_empty_debian_layout
|
||||||
copy_files_to_debian_layout
|
copy_files_to_debian_layout
|
||||||
|
update_debian_json
|
||||||
create_debian_package
|
create_debian_package
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -158,15 +167,18 @@ create_debian_package(){
|
||||||
"$PACKAGING_TOOL_DIR/package_tool" -i "$PACKAGE_LAYOUT_DIR" -o "$PACKAGE_OUTPUT_DIR" -v $DOTNET_CLI_VERSION -n $DOTNET_DEB_PACKAGE_NAME
|
"$PACKAGING_TOOL_DIR/package_tool" -i "$PACKAGE_LAYOUT_DIR" -o "$PACKAGE_OUTPUT_DIR" -v $DOTNET_CLI_VERSION -n $DOTNET_DEB_PACKAGE_NAME
|
||||||
}
|
}
|
||||||
|
|
||||||
|
update_debian_json()
|
||||||
|
{
|
||||||
|
header "Updating debian.json file"
|
||||||
|
sed -i "s/%SHARED_FRAMEWORK_NUGET_NAME%/$SHARED_FRAMEWORK_NUGET_NAME/g" "$PACKAGE_LAYOUT_DIR"/debian_config.json
|
||||||
|
sed -i "s/%SHARED_FRAMEWORK_NUGET_VERSION%/$SHARED_FRAMEWORK_NUGET_VERSION/g" "$PACKAGE_LAYOUT_DIR"/debian_config.json
|
||||||
|
}
|
||||||
|
|
||||||
test_debian_package(){
|
test_debian_package(){
|
||||||
header "Testing debian package"
|
header "Testing debian package"
|
||||||
|
|
||||||
install_bats
|
install_bats
|
||||||
run_package_integrity_tests
|
run_package_integrity_tests
|
||||||
|
|
||||||
install_debian_package
|
|
||||||
run_e2e_test
|
|
||||||
remove_debian_package
|
|
||||||
}
|
}
|
||||||
|
|
||||||
install_bats() {
|
install_bats() {
|
||||||
|
@ -174,14 +186,6 @@ install_bats() {
|
||||||
git clone https://github.com/sstephenson/bats.git $TEST_STAGE_DIR
|
git clone https://github.com/sstephenson/bats.git $TEST_STAGE_DIR
|
||||||
}
|
}
|
||||||
|
|
||||||
install_debian_package() {
|
|
||||||
sudo dpkg -i $DEBIAN_FILE
|
|
||||||
}
|
|
||||||
|
|
||||||
remove_debian_package() {
|
|
||||||
sudo dpkg -r $DOTNET_DEB_PACKAGE_NAME
|
|
||||||
}
|
|
||||||
|
|
||||||
run_package_integrity_tests() {
|
run_package_integrity_tests() {
|
||||||
# Set LAST_VERSION_URL to enable upgrade tests
|
# Set LAST_VERSION_URL to enable upgrade tests
|
||||||
export LAST_VERSION_URL="$PREVIOUS_VERSION_URL"
|
export LAST_VERSION_URL="$PREVIOUS_VERSION_URL"
|
||||||
|
@ -189,17 +193,6 @@ run_package_integrity_tests() {
|
||||||
$TEST_STAGE_DIR/bin/bats $PACKAGE_OUTPUT_DIR/test_package.bats
|
$TEST_STAGE_DIR/bin/bats $PACKAGE_OUTPUT_DIR/test_package.bats
|
||||||
}
|
}
|
||||||
|
|
||||||
run_e2e_test(){
|
|
||||||
local dotnet_path="/usr/bin/dotnet"
|
|
||||||
|
|
||||||
header "Running EndToEnd Tests against debian package using ${dotnet_path}"
|
|
||||||
|
|
||||||
# Won't affect outer functions
|
|
||||||
cd $REPOROOT/test/EndToEnd
|
|
||||||
$dotnet_path build
|
|
||||||
$dotnet_path test -xml $TEST_STAGE_DIR/debian-endtoend-testResults.xml
|
|
||||||
}
|
|
||||||
|
|
||||||
execute_build
|
execute_build
|
||||||
|
|
||||||
DEBIAN_FILE=$(find $PACKAGE_OUTPUT_DIR -iname "*.deb")
|
DEBIAN_FILE=$(find $PACKAGE_OUTPUT_DIR -iname "*.deb")
|
||||||
|
|
|
@ -127,7 +127,7 @@ update_debian_json()
|
||||||
}
|
}
|
||||||
|
|
||||||
test_debian_package(){
|
test_debian_package(){
|
||||||
header "Testing debian package"
|
header "Testing debian Shared Framework package"
|
||||||
|
|
||||||
install_bats
|
install_bats
|
||||||
run_package_integrity_tests
|
run_package_integrity_tests
|
||||||
|
|
|
@ -25,6 +25,7 @@ help(){
|
||||||
echo "Options:"
|
echo "Options:"
|
||||||
echo " --input <input directory> Package the entire contents of the directory tree."
|
echo " --input <input directory> Package the entire contents of the directory tree."
|
||||||
echo " --output <output debfile> The full path to which the package will be written."
|
echo " --output <output debfile> The full path to which the package will be written."
|
||||||
|
echo " --package-name <package name> Package to identify during installation. Example - 'dotnet-sharedhost'"
|
||||||
echo " --obj-root <object root> Root folder for intermediate objects."
|
echo " --obj-root <object root> Root folder for intermediate objects."
|
||||||
echo " --version <version> Version for the debain package."
|
echo " --version <version> Version for the debain package."
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -41,6 +42,10 @@ while [[ $# > 0 ]]; do
|
||||||
REPO_BINARIES_DIR=$2
|
REPO_BINARIES_DIR=$2
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
-p|--package-name)
|
||||||
|
SHARED_HOST_DEBIAN_PACKAGE_NAME=$2
|
||||||
|
shift
|
||||||
|
;;
|
||||||
--obj-root)
|
--obj-root)
|
||||||
OBJECT_DIR=$2
|
OBJECT_DIR=$2
|
||||||
shift
|
shift
|
||||||
|
@ -99,11 +104,11 @@ create_debian_package(){
|
||||||
|
|
||||||
mkdir -p "$PACKAGE_OUTPUT_DIR"
|
mkdir -p "$PACKAGE_OUTPUT_DIR"
|
||||||
|
|
||||||
"$PACKAGING_TOOL_DIR/package_tool" -i "$PACKAGE_LAYOUT_DIR" -o "$PACKAGE_OUTPUT_DIR" -v "$SHARED_HOST_DEBIAN_VERSION"
|
"$PACKAGING_TOOL_DIR/package_tool" -i "$PACKAGE_LAYOUT_DIR" -o "$PACKAGE_OUTPUT_DIR" -n "$SHARED_HOST_DEBIAN_PACKAGE_NAME" -v "$SHARED_HOST_DEBIAN_VERSION"
|
||||||
}
|
}
|
||||||
|
|
||||||
test_debian_package(){
|
test_debian_package(){
|
||||||
header "Testing debian package"
|
header "Testing debian Shared Host package"
|
||||||
|
|
||||||
install_bats
|
install_bats
|
||||||
run_package_integrity_tests
|
run_package_integrity_tests
|
||||||
|
|
|
@ -13,6 +13,7 @@ while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symli
|
||||||
[[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
[[ "$SOURCE" != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
||||||
done
|
done
|
||||||
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
||||||
|
OLDPATH="$PATH"
|
||||||
|
|
||||||
source "$DIR/common/_prettyprint.sh"
|
source "$DIR/common/_prettyprint.sh"
|
||||||
|
|
||||||
|
@ -109,6 +110,7 @@ echo "Restoring Build Script projects..."
|
||||||
echo "Compiling Build Scripts..."
|
echo "Compiling Build Scripts..."
|
||||||
dotnet publish "$DIR/dotnet-cli-build" -o "$DIR/dotnet-cli-build/bin" --framework netstandardapp1.5
|
dotnet publish "$DIR/dotnet-cli-build" -o "$DIR/dotnet-cli-build/bin" --framework netstandardapp1.5
|
||||||
|
|
||||||
|
export PATH="$OLDPATH"
|
||||||
# Run the builder
|
# Run the builder
|
||||||
echo "Invoking Build Scripts..."
|
echo "Invoking Build Scripts..."
|
||||||
echo "Configuration: $CONFIGURATION"
|
echo "Configuration: $CONFIGURATION"
|
||||||
|
|
|
@ -25,7 +25,7 @@ namespace Microsoft.DotNet.Tools.Test.Utilities
|
||||||
var commandPath = _command;
|
var commandPath = _command;
|
||||||
ResolveCommand(ref commandPath, ref args);
|
ResolveCommand(ref commandPath, ref args);
|
||||||
|
|
||||||
Console.WriteLine($"Executing - {_command} {args}");
|
Console.WriteLine($"Executing - {commandPath} {args}");
|
||||||
|
|
||||||
var stdOut = new StreamForwarder();
|
var stdOut = new StreamForwarder();
|
||||||
var stdErr = new StreamForwarder();
|
var stdErr = new StreamForwarder();
|
||||||
|
@ -38,12 +38,12 @@ namespace Microsoft.DotNet.Tools.Test.Utilities
|
||||||
|
|
||||||
public virtual CommandResult ExecuteWithCapturedOutput(string args = "")
|
public virtual CommandResult ExecuteWithCapturedOutput(string args = "")
|
||||||
{
|
{
|
||||||
Console.WriteLine($"Executing (Captured Output) - {_command} {args}");
|
|
||||||
|
|
||||||
var command = _command;
|
var command = _command;
|
||||||
ResolveCommand(ref command, ref args);
|
ResolveCommand(ref command, ref args);
|
||||||
var commandPath = Env.GetCommandPath(command, ".exe", ".cmd", "") ??
|
var commandPath = Env.GetCommandPath(command, ".exe", ".cmd", "") ??
|
||||||
Env.GetCommandPathFromRootPath(AppContext.BaseDirectory, command, ".exe", ".cmd", "");
|
Env.GetCommandPathFromRootPath(AppContext.BaseDirectory, command, ".exe", ".cmd", "");
|
||||||
|
|
||||||
|
Console.WriteLine($"Executing (Captured Output) - {commandPath} {args}");
|
||||||
|
|
||||||
var stdOut = new StreamForwarder();
|
var stdOut = new StreamForwarder();
|
||||||
var stdErr = new StreamForwarder();
|
var stdErr = new StreamForwarder();
|
||||||
|
@ -64,7 +64,7 @@ namespace Microsoft.DotNet.Tools.Test.Utilities
|
||||||
newArgs += " " + args;
|
newArgs += " " + args;
|
||||||
}
|
}
|
||||||
args = newArgs;
|
args = newArgs;
|
||||||
executable = "corehost";
|
executable = "dotnet";
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!Path.IsPathRooted(executable))
|
if (!Path.IsPathRooted(executable))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue