Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
5e92ead
allow dropping yield in sequence expressions
dsyme Mar 2, 2019
177c5ef
Merge branch 'master' of http://github.com/Microsoft/visualfsharp int…
dsyme Mar 3, 2019
0794413
Merge branch 'master' of http://github.com/Microsoft/visualfsharp int…
dsyme Mar 9, 2019
339bbcc
update tests
dsyme Mar 9, 2019
8cdfe06
update xlf
dsyme Mar 10, 2019
3b98c68
fix test
dsyme Mar 10, 2019
b9b5881
update baseline
dsyme Mar 11, 2019
54a93a5
implicit yield for computation expressions
dsyme Mar 11, 2019
e4e97c9
Merge branch 'diag4' into seq4
dsyme Mar 11, 2019
77e03e7
Merge branch 'diag4' into seq4
dsyme Mar 11, 2019
721e416
Merge branch 'diag4' into seq4
dsyme Mar 11, 2019
826f499
Merge branch 'diag4' into seq4
dsyme Mar 11, 2019
aee22b9
fix tests, merge diag4
dsyme Mar 11, 2019
170ea88
merge master
dsyme Mar 11, 2019
4bbd54f
fix test
dsyme Mar 11, 2019
5a39c70
Merge branch 'master' of http://github.com/Microsoft/visualfsharp int…
dsyme Mar 12, 2019
a343159
update tests
dsyme Mar 12, 2019
d937f80
fix tests
dsyme Mar 12, 2019
94b70d2
fix test
dsyme Mar 12, 2019
764c290
Merge branch 'master' into seq4
dsyme Mar 19, 2019
c5f0d2a
integrate master
dsyme Mar 20, 2019
47b3137
Merge branch 'seq4' of https://github.com/dsyme/visualfsharp into seq4
dsyme Mar 20, 2019
e7a0c93
Merge branch 'master' of https://github.com/Microsoft/visualfsharp in…
dsyme Mar 21, 2019
4642f4b
merge master
dsyme Mar 26, 2019
99afa10
Merge branch 'master' of http://github.com/Microsoft/visualfsharp int…
dsyme Apr 1, 2019
f0bcebb
integrate master
dsyme Apr 14, 2019
849ead1
merge master
dsyme Apr 16, 2019
1475eae
Merge branch 'master' of http://github.com/Microsoft/visualfsharp int…
dsyme May 22, 2019
d8501f1
Merge pull request #6824 from dotnet/merges/master-to-feature/implici…
May 23, 2019
e886cd8
Merge pull request #6837 from dotnet/merges/master-to-feature/implici…
May 24, 2019
5f56cd0
Merge pull request #6855 from dotnet/merges/master-to-feature/implici…
May 25, 2019
0e2ff8a
Merge branch 'release/fsharp47' of http://github.com/Microsoft/visual…
dsyme Jun 5, 2019
f038f6c
fix build
dsyme Jun 7, 2019
39dba18
address PR
dsyme Jun 7, 2019
625d859
fix test
dsyme Jun 14, 2019
eccd4d1
Merge branch 'release/fsharp47' of http://github.com/Microsoft/visual…
dsyme Jun 14, 2019
1e1fc63
Merge branch 'release/fsharp47' of https://github.com/dotnet/fsharp i…
dsyme Jul 3, 2019
a51817c
review feedback
dsyme Jul 3, 2019
dc62cfa
Merge pull request #7032 from dotnet/merges/master-to-feature/implici…
KevinRansom Jul 4, 2019
dd0aac0
Merge branch 'release/fsharp47' into feature/implicit-yields
KevinRansom Jul 4, 2019
eb90b69
make it match fsharp47
KevinRansom Jul 4, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
<ProductDependencies>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19315.2">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19320.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>aa4285be7fab64e2b6e62e4d5688ea50931c407c</Sha>
<Sha>b21c24996a73aa62b7a1ee69f546b9d2eb084f29</Sha>
</Dependency>
</ToolsetDependencies>
</Dependencies>
6 changes: 5 additions & 1 deletion eng/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -176,7 +176,11 @@ function TestUsingNUnit() {
projectname="${projectname%.*}"
testlogpath="$artifacts_dir/TestResults/$configuration/${projectname}_$targetframework.xml"
args="test \"$testproject\" --no-restore --no-build -c $configuration -f $targetframework --test-adapter-path . --logger \"nunit;LogFilePath=$testlogpath\""
"$DOTNET_INSTALL_DIR/dotnet" $args
"$DOTNET_INSTALL_DIR/dotnet" $args || {
local exit_code=$?
echo "dotnet test failed (exit code '$exit_code')." >&2
ExitWithExitCode $exit_code
}
}

function BuildSolution {
Expand Down
11 changes: 11 additions & 0 deletions eng/common/PSScriptAnalyzerSettings.psd1
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
@{
IncludeRules=@('PSAvoidUsingCmdletAliases',
'PSAvoidUsingWMICmdlet',
'PSAvoidUsingPositionalParameters',
'PSAvoidUsingInvokeExpression',
'PSUseDeclaredVarsMoreThanAssignments',
'PSUseCmdletCorrectly',
'PSStandardDSCFunctionsInResource',
'PSUseIdenticalMandatoryParametersForDSC',
'PSUseIdenticalParametersForDSC')
}
135 changes: 135 additions & 0 deletions eng/common/internal-feed-operations.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
param(
[Parameter(Mandatory=$true)][string] $Operation,
[string] $AuthToken,
[string] $CommitSha,
[string] $RepoName,
[switch] $IsFeedPrivate
)

$ErrorActionPreference = "Stop"
Set-StrictMode -Version 2.0

. $PSScriptRoot\tools.ps1

# Sets VSS_NUGET_EXTERNAL_FEED_ENDPOINTS based on the "darc-int-*" feeds defined in NuGet.config. This is needed
# in build agents by CredProvider to authenticate the restore requests to internal feeds as specified in
# https://github.com/microsoft/artifacts-credprovider/blob/0f53327cd12fd893d8627d7b08a2171bf5852a41/README.md#environment-variables. This should ONLY be called from identified
# internal builds
function SetupCredProvider {
param(
[string] $AuthToken
)

# Install the Cred Provider NuGet plugin
Write-Host "Setting up Cred Provider NuGet plugin in the agent..."
Write-Host "Getting 'installcredprovider.ps1' from 'https://github.com/microsoft/artifacts-credprovider'..."

$url = 'https://raw.githubusercontent.com/microsoft/artifacts-credprovider/master/helpers/installcredprovider.ps1'

Write-Host "Writing the contents of 'installcredprovider.ps1' locally..."
Invoke-WebRequest $url -OutFile installcredprovider.ps1

Write-Host "Installing plugin..."
.\installcredprovider.ps1 -Force

Write-Host "Deleting local copy of 'installcredprovider.ps1'..."
Remove-Item .\installcredprovider.ps1

if (-Not("$env:USERPROFILE\.nuget\plugins\netcore")) {
Write-Host "CredProvider plugin was not installed correctly!"
ExitWithExitCode 1
}
else {
Write-Host "CredProvider plugin was installed correctly!"
}

# Then, we set the 'VSS_NUGET_EXTERNAL_FEED_ENDPOINTS' environment variable to restore from the stable
# feeds successfully

$nugetConfigPath = "$RepoRoot\NuGet.config"

if (-Not (Test-Path -Path $nugetConfigPath)) {
Write-Host "NuGet.config file not found in repo's root!"
ExitWithExitCode 1
}

$endpoints = New-Object System.Collections.ArrayList
$nugetConfigPackageSources = Select-Xml -Path $nugetConfigPath -XPath "//packageSources/add[contains(@key, 'darc-int-')]/@value" | foreach{$_.Node.Value}

if (($nugetConfigPackageSources | Measure-Object).Count -gt 0 ) {
foreach ($stableRestoreResource in $nugetConfigPackageSources) {
$trimmedResource = ([string]$stableRestoreResource).Trim()
[void]$endpoints.Add(@{endpoint="$trimmedResource"; password="$AuthToken"})
}
}

if (($endpoints | Measure-Object).Count -gt 0) {
# Create the JSON object. It should look like '{"endpointCredentials": [{"endpoint":"http://example.index.json", "username":"optional", "password":"accesstoken"}]}'
$endpointCredentials = @{endpointCredentials=$endpoints} | ConvertTo-Json -Compress

# Create the environment variables the AzDo way
Write-LoggingCommand -Area 'task' -Event 'setvariable' -Data $endpointCredentials -Properties @{
'variable' = 'VSS_NUGET_EXTERNAL_FEED_ENDPOINTS'
'issecret' = 'false'
}

# We don't want sessions cached since we will be updating the endpoints quite frequently
Write-LoggingCommand -Area 'task' -Event 'setvariable' -Data 'False' -Properties @{
'variable' = 'NUGET_CREDENTIALPROVIDER_SESSIONTOKENCACHE_ENABLED'
'issecret' = 'false'
}
}
else
{
Write-Host "No internal endpoints found in NuGet.config"
}
}

#Workaround for https://github.com/microsoft/msbuild/issues/4430
function InstallDotNetSdkAndRestoreArcade {
$dotnetTempDir = "$RepoRoot\dotnet"
$dotnetSdkVersion="2.1.507" # After experimentation we know this version works when restoring the SDK (compared to 3.0.*)
$dotnet = "$dotnetTempDir\dotnet.exe"
$restoreProjPath = "$PSScriptRoot\restore.proj"

Write-Host "Installing dotnet SDK version $dotnetSdkVersion to restore Arcade SDK..."
InstallDotNetSdk "$dotnetTempDir" "$dotnetSdkVersion"

'<Project Sdk="Microsoft.DotNet.Arcade.Sdk"/>' | Out-File "$restoreProjPath"

& $dotnet restore $restoreProjPath

Write-Host "Arcade SDK restored!"

if (Test-Path -Path $restoreProjPath) {
Remove-Item $restoreProjPath
}

if (Test-Path -Path $dotnetTempDir) {
Remove-Item $dotnetTempDir -Recurse
}
}

try {
Push-Location $PSScriptRoot

if ($Operation -like "setup") {
SetupCredProvider $AuthToken
}
elseif ($Operation -like "install-restore") {
InstallDotNetSdkAndRestoreArcade
}
else {
Write-Host "Unknown operation '$Operation'!"
ExitWithExitCode 1
}
}
catch {
Write-Host $_
Write-Host $_.Exception
Write-Host $_.ScriptStackTrace
ExitWithExitCode 1
}
finally {
Pop-Location
}
142 changes: 142 additions & 0 deletions eng/common/internal-feed-operations.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
#!/usr/bin/env bash

set -e

# Sets VSS_NUGET_EXTERNAL_FEED_ENDPOINTS based on the "darc-int-*" feeds defined in NuGet.config. This is needed
# in build agents by CredProvider to authenticate the restore requests to internal feeds as specified in
# https://github.com/microsoft/artifacts-credprovider/blob/0f53327cd12fd893d8627d7b08a2171bf5852a41/README.md#environment-variables.
# This should ONLY be called from identified internal builds
function SetupCredProvider {
local authToken=$1

# Install the Cred Provider NuGet plugin
echo "Setting up Cred Provider NuGet plugin in the agent..."...
echo "Getting 'installcredprovider.ps1' from 'https://github.com/microsoft/artifacts-credprovider'..."

local url="https://raw.githubusercontent.com/microsoft/artifacts-credprovider/master/helpers/installcredprovider.sh"

echo "Writing the contents of 'installcredprovider.ps1' locally..."
local installcredproviderPath="installcredprovider.sh"
if command -v curl > /dev/null; then
curl $url > "$installcredproviderPath"
else
wget -q -O "$installcredproviderPath" "$url"
fi

echo "Installing plugin..."
. "$installcredproviderPath"

echo "Deleting local copy of 'installcredprovider.sh'..."
rm installcredprovider.sh

if [ ! -d "$HOME/.nuget/plugins" ]; then
echo "CredProvider plugin was not installed correctly!"
ExitWithExitCode 1
else
echo "CredProvider plugin was installed correctly!"
fi

# Then, we set the 'VSS_NUGET_EXTERNAL_FEED_ENDPOINTS' environment variable to restore from the stable
# feeds successfully

local nugetConfigPath="$repo_root/NuGet.config"

if [ ! "$nugetConfigPath" ]; then
echo "NuGet.config file not found in repo's root!"
ExitWithExitCode 1
fi

local endpoints='['
local nugetConfigPackageValues=`cat "$nugetConfigPath" | grep "key=\"darc-int-"`
local pattern="value=\"(.*)\""

for value in $nugetConfigPackageValues
do
if [[ $value =~ $pattern ]]; then
local endpoint="${BASH_REMATCH[1]}"
endpoints+="{\"endpoint\": \"$endpoint\", \"password\": \"$authToken\"},"
fi
done

endpoints=${endpoints%?}
endpoints+=']'

if [ ${#endpoints} -gt 2 ]; then
# Create the JSON object. It should look like '{"endpointCredentials": [{"endpoint":"http://example.index.json", "username":"optional", "password":"accesstoken"}]}'
local endpointCredentials="{\"endpointCredentials\": "$endpoints"}"

echo "##vso[task.setvariable variable=VSS_NUGET_EXTERNAL_FEED_ENDPOINTS]$endpointCredentials"
echo "##vso[task.setvariable variable=NUGET_CREDENTIALPROVIDER_SESSIONTOKENCACHE_ENABLED]False"
else
echo "No internal endpoints found in NuGet.config"
fi
}

# Workaround for https://github.com/microsoft/msbuild/issues/4430
function InstallDotNetSdkAndRestoreArcade {
local dotnetTempDir="$repo_root/dotnet"
local dotnetSdkVersion="2.1.507" # After experimentation we know this version works when restoring the SDK (compared to 3.0.*)
local restoreProjPath="$repo_root/eng/common/restore.proj"

echo "Installing dotnet SDK version $dotnetSdkVersion to restore Arcade SDK..."
echo "<Project Sdk=\"Microsoft.DotNet.Arcade.Sdk\"/>" > "$restoreProjPath"

InstallDotNetSdk "$dotnetTempDir" "$dotnetSdkVersion"

local res=`$dotnetTempDir/dotnet restore $restoreProjPath`
echo "Arcade SDK restored!"

# Cleanup
if [ "$restoreProjPath" ]; then
rm "$restoreProjPath"
fi

if [ "$dotnetTempDir" ]; then
rm -r $dotnetTempDir
fi
}

source="${BASH_SOURCE[0]}"
operation=''
authToken=''
repoName=''

while [[ $# > 0 ]]; do
opt="$(echo "$1" | awk '{print tolower($0)}')"
case "$opt" in
--operation)
operation=$2
shift
;;
--authtoken)
authToken=$2
shift
;;
*)
echo "Invalid argument: $1"
usage
exit 1
;;
esac

shift
done

while [[ -h "$source" ]]; do
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
source="$(readlink "$source")"
# if $source was a relative symlink, we need to resolve it relative to the path where the
# symlink file was located
[[ $source != /* ]] && source="$scriptroot/$source"
done
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"

. "$scriptroot/tools.sh"

if [ "$operation" = "setup" ]; then
SetupCredProvider $authToken
elif [ "$operation" = "install-restore" ]; then
InstallDotNetSdkAndRestoreArcade
else
echo "Unknown operation '$operation'!"
fi
Loading