forked from go-delve/delve
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtest_windows.ps1
74 lines (66 loc) · 2.62 KB
/
test_windows.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
param (
[Parameter(Mandatory = $true)][string]$version,
[Parameter(Mandatory = $true)][string]$arch
)
# Install Chocolatey
#Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
# Install MinGW.
choco install -y mingw --version 10.2.0
# Install Procdump
if (-Not(Test-Path "C:\procdump"))
{
mkdir C:\procdump
Invoke-WebRequest -UserAgent wget -Uri https://download.sysinternals.com/files/Procdump.zip -OutFile C:\procdump\procdump.zip
&7z x -oC:\procdump\ C:\procdump\procdump.zip > $null
}
$env:PATH += ";C:\procdump;C:\mingw64\bin"
function GetGo($version) {
$env:GOROOT = "C:\go\$version"
if (-Not(Test-Path $env:GOROOT))
{
$file = "$version.windows-$arch.zip"
$url = "https://dl.google.com/go/$file"
Invoke-WebRequest -UserAgent wget -Uri $url -OutFile $file
&7z x -oC:\go $file > $null
Move-Item -Path C:\go\go -Destination $env:GOROOT -force
}
}
if ($version -eq "gotip") {
Exit 0
$latest = Invoke-WebRequest -Uri https://golang.org/VERSION?m=text -UseBasicParsing | Select-Object -ExpandProperty Content
GetGo $latest
$env:GOROOT_BOOTSTRAP = $env:GOROOT
$env:GOROOT = "C:\go\go-tip"
Write-Host "Building Go with GOROOT_BOOTSTRAP $env:GOROOT_BOOTSTRAP"
if (-Not(Test-Path $env:GOROOT)) {
git clone https://go.googlesource.com/go C:\go\go-tip
Push-Location -Path C:\go\go-tip\src
} else {
Push-Location -Path C:\go\go-tip\src
git pull
}
.\make.bat
Pop-Location
} else {
# Install Go
Write-Host "Finding latest patch version for $version"
$versions = Invoke-WebRequest -Uri 'https://golang.org/dl/?mode=json&include=all' -UseBasicParsing | foreach {$_.Content} | ConvertFrom-Json
$v = $versions | foreach {$_.version} | Select-String -Pattern "^$version($|\.)" | Sort-Object -Descending | Select-Object -First 1
if ($v -eq $null) {
$v = $versions | foreach {$_.version} | Select-String -Pattern "^$version(rc)" | Sort-Object -Descending | Select-Object -First 1
}
if ($v -eq $null) {
$v = $versions | foreach {$_.version} | Select-String -Pattern "^$version(beta)" | Sort-Object -Descending | Select-Object -First 1
}
Write-Host "Go $v on $arch"
GetGo $v
}
$env:GOPATH = "C:\gopath"
$env:PATH += ";$env:GOROOT\bin;$env:GOPATH\bin"
Write-Host $env:PATH
Write-Host $env:GOROOT
Write-Host $env:GOPATH
go version
go env
go run _scripts/make.go test
Exit $LastExitCode