Add support for restore sources and package version props url

Fixes #654
Fixes #656
This commit is contained in:
Pranav K 2017-11-28 10:55:08 -08:00
parent 5274867cb7
commit 12e6e99d92
3 changed files with 73 additions and 16 deletions

View File

@ -92,20 +92,22 @@
<_LineupPackages Include="%(ArtifactInfo.PackageId)" Version="%(ArtifactInfo.Version)" Condition=" '%(ArtifactInfo.ArtifactType)' == 'NuGetPackage' " /> <_LineupPackages Include="%(ArtifactInfo.PackageId)" Version="%(ArtifactInfo.Version)" Condition=" '%(ArtifactInfo.ArtifactType)' == 'NuGetPackage' " />
<_LineupPackages Include="Microsoft.AspNetCore.All" Version="$(PackageVersion)" /> <_LineupPackages Include="Microsoft.AspNetCore.All" Version="$(PackageVersion)" />
<_LineupSources Include="$(DependencyPackageDir)" Condition="'$(DependencyPackageDir)' != '' AND Exists('$(DependencyPackageDir)')" /> <_RestoreSources Include="$(DotNetRestoreSources)" Condition="'$(DotNetRestoreSources)' != ''" />
<_LineupSources Include="$(BuildDir)" /> <_RestoreSources Include="$(DependencyPackageDir)" Condition="'$(DependencyPackageDir)' != '' AND Exists('$(DependencyPackageDir)')" />
<_LineupSources Include="$(IntermediateExternalPackageDir)" /> <_RestoreSources Include="$(BuildDir)" />
<_LineupSources Include="$(IntermediateMirrorPackageDir)" /> <_RestoreSources Include="$(IntermediateExternalPackageDir)" />
<_RestoreSources Include="$(IntermediateMirrorPackageDir)" />
</ItemGroup> </ItemGroup>
<GeneratePackageVersionPropsFile <GeneratePackageVersionPropsFile
Packages="@(_LineupPackages)" Packages="@(_LineupPackages)"
OutputPath="$(GeneratedPackageVersionPropsPath)" /> OutputPath="$(GeneratedPackageVersionPropsPath)"
AdditionalImports="$(DotNetPackageVersionPropsPath)" />
<Copy SourceFiles="$(GeneratedPackageVersionPropsPath)" DestinationFolder="$(ArtifactsDir)" /> <Copy SourceFiles="$(GeneratedPackageVersionPropsPath)" DestinationFolder="$(ArtifactsDir)" />
<RepoTasks.GenerateRestoreSourcesPropsFile <RepoTasks.GenerateRestoreSourcesPropsFile
Sources="@(_LineupSources)" Sources="@(_RestoreSources)"
OutputPath="$(GeneratedRestoreSourcesPropsPath)" /> OutputPath="$(GeneratedRestoreSourcesPropsPath)" />
<PackNuSpec NuSpecPath="$(MSBuildThisFileDirectory)lineups\Internal.AspNetCore.Universe.Lineup.nuspec" <PackNuSpec NuSpecPath="$(MSBuildThisFileDirectory)lineups\Internal.AspNetCore.Universe.Lineup.nuspec"

32
run.ps1
View File

@ -29,8 +29,17 @@ Updates KoreBuild to the latest version even if a lock file is present.
.PARAMETER ConfigFile .PARAMETER ConfigFile
The path to the configuration file that stores values. Defaults to korebuild.json. The path to the configuration file that stores values. Defaults to korebuild.json.
.PARAMETER Arguments .PARAMETER PackageVersionPropsUrl
Arguments to be passed to the command (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 .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. 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')] [Alias('u')]
[switch]$Update, [switch]$Update,
[string]$ConfigFile, [string]$ConfigFile,
[string]$PackageVersionPropsUrl = $null,
[string]$AccessTokenSuffix = $null,
[string]$RestoreSources = $null,
[Parameter(ValueFromRemainingArguments = $true)] [Parameter(ValueFromRemainingArguments = $true)]
[string[]]$Arguments [string[]]$MSBuildArguments
) )
Set-StrictMode -Version 2 Set-StrictMode -Version 2
@ -177,6 +189,18 @@ if (!$DotNetHome) {
if (!$Channel) { $Channel = 'dev' } if (!$Channel) { $Channel = 'dev' }
if (!$ToolsSource) { $ToolsSource = 'https://aspnetcore.blob.core.windows.net/buildtools' } 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 # Execute
$korebuildPath = Get-KoreBuild $korebuildPath = Get-KoreBuild
@ -184,7 +208,7 @@ Import-Module -Force -Scope Local (Join-Path $korebuildPath 'KoreBuild.psd1')
try { try {
Set-KoreBuildSettings -ToolsSource $ToolsSource -DotNetHome $DotNetHome -RepoPath $Path -ConfigFile $ConfigFile Set-KoreBuildSettings -ToolsSource $ToolsSource -DotNetHome $DotNetHome -RepoPath $Path -ConfigFile $ConfigFile
Invoke-KoreBuildCommand $Command @Arguments Invoke-KoreBuildCommand $Command @MSBuildArguments
} }
finally { finally {
Remove-Module 'KoreBuild' -ErrorAction Ignore Remove-Module 'KoreBuild' -ErrorAction Ignore

43
run.sh
View File

@ -17,6 +17,10 @@ update=false
repo_path="$DIR" repo_path="$DIR"
channel='' channel=''
tools_source='' tools_source=''
package_version_props_url=''
access_token_suffix=''
restore_sources=''
msbuild_args=''
# #
# Functions # 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 " -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 " --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 " -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 " -u|--update Update to the latest KoreBuild even if the lock file is present."
echo "" echo ""
echo "Description:" echo "Description:"
@ -164,18 +171,29 @@ while [[ $# -gt 0 ]]; do
tools_source="${1:-}" tools_source="${1:-}"
[ -z "$tools_source" ] && __usage [ -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) -u|--update|-Update)
update=true update=true
;; ;;
--verbose|-Verbose) --verbose|-Verbose)
verbose=true verbose=true
;; ;;
--)
shift
break
;;
*) *)
break msbuild_args+="\"$1\" "
;; ;;
esac esac
shift shift
@ -215,9 +233,22 @@ if [ -f "$config_file" ]; then
[ ! -z "${config_tools_source:-}" ] && tools_source="$config_tools_source" [ ! -z "${config_tools_source:-}" ] && tools_source="$config_tools_source"
fi 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 "$channel" ] && channel='dev'
[ -z "$tools_source" ] && tools_source='https://aspnetcore.blob.core.windows.net/buildtools' [ -z "$tools_source" ] && tools_source='https://aspnetcore.blob.core.windows.net/buildtools'
get_korebuild get_korebuild
set_korebuildsettings "$tools_source" "$DOTNET_HOME" "$repo_path" "$config_file" set_korebuildsettings "$tools_source" "$DOTNET_HOME" "$repo_path" "$config_file"
invoke_korebuild_command "$command" "$@"
invoke_korebuild_command "$command" "$msbuild_args"