Add support for restore sources and package version props url
Fixes #654 Fixes #656
This commit is contained in:
parent
5274867cb7
commit
12e6e99d92
|
|
@ -92,20 +92,22 @@
|
|||
<_LineupPackages Include="%(ArtifactInfo.PackageId)" Version="%(ArtifactInfo.Version)" Condition=" '%(ArtifactInfo.ArtifactType)' == 'NuGetPackage' " />
|
||||
<_LineupPackages Include="Microsoft.AspNetCore.All" Version="$(PackageVersion)" />
|
||||
|
||||
<_LineupSources Include="$(DependencyPackageDir)" Condition="'$(DependencyPackageDir)' != '' AND Exists('$(DependencyPackageDir)')" />
|
||||
<_LineupSources Include="$(BuildDir)" />
|
||||
<_LineupSources Include="$(IntermediateExternalPackageDir)" />
|
||||
<_LineupSources Include="$(IntermediateMirrorPackageDir)" />
|
||||
<_RestoreSources Include="$(DotNetRestoreSources)" Condition="'$(DotNetRestoreSources)' != ''" />
|
||||
<_RestoreSources Include="$(DependencyPackageDir)" Condition="'$(DependencyPackageDir)' != '' AND Exists('$(DependencyPackageDir)')" />
|
||||
<_RestoreSources Include="$(BuildDir)" />
|
||||
<_RestoreSources Include="$(IntermediateExternalPackageDir)" />
|
||||
<_RestoreSources Include="$(IntermediateMirrorPackageDir)" />
|
||||
</ItemGroup>
|
||||
|
||||
<GeneratePackageVersionPropsFile
|
||||
Packages="@(_LineupPackages)"
|
||||
OutputPath="$(GeneratedPackageVersionPropsPath)" />
|
||||
OutputPath="$(GeneratedPackageVersionPropsPath)"
|
||||
AdditionalImports="$(DotNetPackageVersionPropsPath)" />
|
||||
|
||||
<Copy SourceFiles="$(GeneratedPackageVersionPropsPath)" DestinationFolder="$(ArtifactsDir)" />
|
||||
|
||||
<RepoTasks.GenerateRestoreSourcesPropsFile
|
||||
Sources="@(_LineupSources)"
|
||||
Sources="@(_RestoreSources)"
|
||||
OutputPath="$(GeneratedRestoreSourcesPropsPath)" />
|
||||
|
||||
<PackNuSpec NuSpecPath="$(MSBuildThisFileDirectory)lineups\Internal.AspNetCore.Universe.Lineup.nuspec"
|
||||
|
|
|
|||
32
run.ps1
32
run.ps1
|
|
@ -29,8 +29,17 @@ Updates KoreBuild to the latest version even if a lock file is present.
|
|||
.PARAMETER ConfigFile
|
||||
The path to the configuration file that stores values. Defaults to korebuild.json.
|
||||
|
||||
.PARAMETER Arguments
|
||||
Arguments to be passed to the command
|
||||
.PARAMETER PackageVersionPropsUrl
|
||||
(optional) the url of the package versions props path containing dependency versions.
|
||||
|
||||
.PARAMETER AccessTokenSuffix
|
||||
(optional) the query string to append to any blob store access for PackageVersionPropsUrl, if any.
|
||||
|
||||
.PARAMETER RestoreSources
|
||||
(optional) Semi-colon delimited list of additional NuGet feeds to use as part of restore.
|
||||
|
||||
.PARAMETER MSBuildArguments
|
||||
Additional MSBuild arguments to be passed through.
|
||||
|
||||
.NOTES
|
||||
This function will create a file $PSScriptRoot/korebuild-lock.txt. This lock file can be committed to source, but does not have to be.
|
||||
|
|
@ -63,8 +72,11 @@ param(
|
|||
[Alias('u')]
|
||||
[switch]$Update,
|
||||
[string]$ConfigFile,
|
||||
[string]$PackageVersionPropsUrl = $null,
|
||||
[string]$AccessTokenSuffix = $null,
|
||||
[string]$RestoreSources = $null,
|
||||
[Parameter(ValueFromRemainingArguments = $true)]
|
||||
[string[]]$Arguments
|
||||
[string[]]$MSBuildArguments
|
||||
)
|
||||
|
||||
Set-StrictMode -Version 2
|
||||
|
|
@ -177,6 +189,18 @@ if (!$DotNetHome) {
|
|||
if (!$Channel) { $Channel = 'dev' }
|
||||
if (!$ToolsSource) { $ToolsSource = 'https://aspnetcore.blob.core.windows.net/buildtools' }
|
||||
|
||||
if ($PackageVersionPropsUrl) {
|
||||
$IntermediateDir = Join-Path $PSScriptRoot 'obj'
|
||||
$PropsFilePath = Join-Path $IntermediateDir 'external-dependencies.props'
|
||||
New-Item -ItemType Directory $IntermediateDir -ErrorAction Ignore | Out-Null
|
||||
Get-RemoteFile "${PackageVersionPropsUrl}${AccessTokenSuffix}" $PropsFilePath
|
||||
$MSBuildArguments += "-p:DotNetPackageVersionPropsPath=$PropsFilePath"
|
||||
}
|
||||
|
||||
if ($RestoreSources) {
|
||||
$MSBuildArguments = "-p:DotNetRestoreSources=$RestoreSources"
|
||||
}
|
||||
|
||||
# Execute
|
||||
|
||||
$korebuildPath = Get-KoreBuild
|
||||
|
|
@ -184,7 +208,7 @@ Import-Module -Force -Scope Local (Join-Path $korebuildPath 'KoreBuild.psd1')
|
|||
|
||||
try {
|
||||
Set-KoreBuildSettings -ToolsSource $ToolsSource -DotNetHome $DotNetHome -RepoPath $Path -ConfigFile $ConfigFile
|
||||
Invoke-KoreBuildCommand $Command @Arguments
|
||||
Invoke-KoreBuildCommand $Command @MSBuildArguments
|
||||
}
|
||||
finally {
|
||||
Remove-Module 'KoreBuild' -ErrorAction Ignore
|
||||
|
|
|
|||
43
run.sh
43
run.sh
|
|
@ -17,6 +17,10 @@ update=false
|
|||
repo_path="$DIR"
|
||||
channel=''
|
||||
tools_source=''
|
||||
package_version_props_url=''
|
||||
access_token_suffix=''
|
||||
restore_sources=''
|
||||
msbuild_args=''
|
||||
|
||||
#
|
||||
# Functions
|
||||
|
|
@ -35,6 +39,9 @@ __usage() {
|
|||
echo " -d|--dotnet-home <DIR> The directory where .NET Core tools will be stored. Defaults to '\$DOTNET_HOME' or '\$HOME/.dotnet."
|
||||
echo " --path <PATH> The directory to build. Defaults to the directory containing the script."
|
||||
echo " -s|--tools-source|-ToolsSource <URL> The base url where build tools can be downloaded. Overrides the value from the config file."
|
||||
echo " --package-version-props-url <URL> The url of the package versions props path containing dependency versions."
|
||||
echo " --access-token <Token> The query string to append to any blob store access for PackageVersionPropsUrl, if any."
|
||||
echo " --restore-sources <Sources> Semi-colon delimited list of additional NuGet feeds to use as part of restore."
|
||||
echo " -u|--update Update to the latest KoreBuild even if the lock file is present."
|
||||
echo ""
|
||||
echo "Description:"
|
||||
|
|
@ -164,18 +171,29 @@ while [[ $# -gt 0 ]]; do
|
|||
tools_source="${1:-}"
|
||||
[ -z "$tools_source" ] && __usage
|
||||
;;
|
||||
--package-version-props-url|-PackageVersionPropsUrl)
|
||||
shift
|
||||
package_version_props_url="${1:-}"
|
||||
[ -z "$package_version_props_url" ] && __usage
|
||||
;;
|
||||
--access-token-suffix|-AccessTokenSuffix)
|
||||
shift
|
||||
access_token_suffix="${1:-}"
|
||||
[ -z "$access_token_suffix" ] && __usage
|
||||
;;
|
||||
--restore-sources|-RestoreSources)
|
||||
shift
|
||||
resourceSources="${1:-}"
|
||||
[ -z "$restore_sources" ] && __usage
|
||||
;;
|
||||
-u|--update|-Update)
|
||||
update=true
|
||||
;;
|
||||
--verbose|-Verbose)
|
||||
verbose=true
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break
|
||||
;;
|
||||
*)
|
||||
break
|
||||
msbuild_args+="\"$1\" "
|
||||
;;
|
||||
esac
|
||||
shift
|
||||
|
|
@ -215,9 +233,22 @@ if [ -f "$config_file" ]; then
|
|||
[ ! -z "${config_tools_source:-}" ] && tools_source="$config_tools_source"
|
||||
fi
|
||||
|
||||
if [ "$package_version_props_url" ]; then
|
||||
intermediate_dir="$repo_path/obj"
|
||||
props_file_path="$intermediate_dir/external-dependencies.props"
|
||||
mkdir -p "$intermediate_dir"
|
||||
__get_remote_file "$package_version_props_url" "$props_file_path"
|
||||
msbuild_args+="-p:DotNetPackageVersionPropsPath=\"$props_file_path\" "
|
||||
fi
|
||||
|
||||
if [ "$restore_sources" ]; then
|
||||
msbuild_args+="-p:DotNetRestoreSources=\"$restore_sources\" "
|
||||
fi
|
||||
|
||||
[ -z "$channel" ] && channel='dev'
|
||||
[ -z "$tools_source" ] && tools_source='https://aspnetcore.blob.core.windows.net/buildtools'
|
||||
|
||||
get_korebuild
|
||||
set_korebuildsettings "$tools_source" "$DOTNET_HOME" "$repo_path" "$config_file"
|
||||
invoke_korebuild_command "$command" "$@"
|
||||
|
||||
invoke_korebuild_command "$command" "$msbuild_args"
|
||||
|
|
|
|||
Loading…
Reference in New Issue