Skip to content

Commit

Permalink
[CI:DOCS] Add win-sshproxy target to winmake
Browse files Browse the repository at this point in the history
Winmake file now builds win-sshproxy and gvproxy

Signed-off-by: Ashley Cui <[email protected]>
  • Loading branch information
ashley-cui committed Sep 27, 2023
1 parent d2d121a commit 149d3f7
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 5 deletions.
1 change: 0 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,6 @@ endif
# win-sshproxy is checked out manually to keep from pulling in gvisor and it's transitive
# dependencies. This is only used for the Windows client archives, which must
# include this lightweight helper binary.
#
GV_GITURL=https://github.com/containers/gvisor-tap-vsock.git
GV_SHA=db608827124caa71ba411cec8ea959bb942984fe

Expand Down
57 changes: 53 additions & 4 deletions winmake.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ $ErrorActionPreference = 'Stop'

# Targets
function Podman-Remote{
New-Item ./bin/windows -ItemType Directory -ea 0
New-Item -ItemType Directory -Force -Path "./bin/windows"

$buildInfo = Get-Date -UFormat %s -Millisecond 0
$buildInfo = "-X github.com/containers/podman/v4/libpod/define.buildInfo=$buildInfo "
Expand All @@ -28,6 +28,49 @@ function Local-Machine {
Run-Command "./test/tools/build/ginkgo.exe -vv --tags `"$remotetags`" -timeout=90m --trace --no-color $files pkg/machine/e2e/. "
}

# Expect starting directory to be /podman
function Win-SSHProxy {
param (
[string]$Ref
);

# git is not installed by default on windows
# fail if git doesn't exist
Get-Command git -ErrorAction SilentlyContinue | out-null
if(!$?){
Write-Host "Git not installed, cannot build Win-SSHProxy"
Exit 1
}

if (Test-Path ./tmp-gv) {
Remove-Item ./tmp-gv -Recurse -Force -Confirm:$false
}

$GV_GITURL = "https://github.com/containers/gvisor-tap-vsock.git"

New-Item ./tmp-gv -ItemType Directory -ea 0
Push-Location ./tmp-gv
Run-Command "git init"
Run-Command "git remote add origin $GV_GITURL"
Run-Command "git fetch --depth 1 origin main"
Run-Command "git fetch --depth 1 --tags"
Run-Command "git checkout main"
if (-Not $Ref) {
Write-Host "empty"
$Ref = git describe --abbrev=0
}
Run-Command "git checkout $Ref"
Run-Command "go build -ldflags -H=windowsgui -o bin/win-sshproxy.exe ./cmd/win-sshproxy"
Run-Command "go build -ldflags -H=windowsgui -o bin/gvproxy.exe ./cmd/gvproxy"
Pop-Location

# Move location to ./bin/windows for packaging script and for Windows binary testing
New-Item -ItemType Directory -Force -Path "./bin/windows"
Copy-Item -Path "tmp-gv/bin/win-sshproxy.exe" -Destination "./bin/windows/"
Copy-Item -Path "tmp-gv/bin/gvproxy.exe" -Destination "./bin/windows/"
Remove-Item ./tmp-gv -Recurse -Force -Confirm:$false
}

# Helpers
function Build-Ginkgo{
if (Test-Path -Path ./test/tools/build/ginkgo.exe -PathType Leaf) {
Expand All @@ -48,10 +91,10 @@ function Git-Commit{
}
$commit = git rev-parse HEAD
$dirty = git status --porcelain --untracked-files=no
if ($dirty){
if ($dirty){
$commit = "$commit-dirty"
}
return $commit
}
return $commit
}

function Run-Command {
Expand Down Expand Up @@ -88,6 +131,12 @@ switch ($target) {
'clean' {
Make-Clean
}
'win-sshproxy' {
if ($args.Count -gt 1) {
$ref = $args[1]
}
Win-SSHProxy -Ref $ref
}
default {
Write-Host "Usage: " $MyInvocation.MyCommand.Name "<target> [options]"
Write-Host
Expand Down

0 comments on commit 149d3f7

Please sign in to comment.