You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PowerShell
		
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PowerShell
		
	
using module "./win-go-builder.psm1"
 | 
						|
using module "./nix-go-builder.psm1"
 | 
						|
 | 
						|
<#
 | 
						|
.SYNOPSIS
 | 
						|
Generate Go artifact.
 | 
						|
 | 
						|
.DESCRIPTION
 | 
						|
Main script that creates instance of GoBuilder and builds of Go using specified parameters.
 | 
						|
 | 
						|
.PARAMETER Version
 | 
						|
Required parameter. The version with which Go will be built.
 | 
						|
 | 
						|
.PARAMETER Architecture
 | 
						|
Optional parameter. The architecture with which Go will be built. Using x64 by default.
 | 
						|
 | 
						|
.PARAMETER Platform
 | 
						|
Required parameter. The platform for which Go will be built.
 | 
						|
 | 
						|
#>
 | 
						|
 | 
						|
param(
 | 
						|
    [Parameter (Mandatory=$true)][version] $Version,
 | 
						|
    [Parameter (Mandatory=$true)][string] $Platform,
 | 
						|
    [string] $Architecture = "x64"
 | 
						|
)
 | 
						|
 | 
						|
Import-Module (Join-Path $PSScriptRoot "../helpers" | Join-Path -ChildPath "nix-helpers.psm1") -DisableNameChecking
 | 
						|
Import-Module (Join-Path $PSScriptRoot "../helpers" | Join-Path -ChildPath "win-helpers.psm1") -DisableNameChecking
 | 
						|
 | 
						|
function Get-GoBuilder {
 | 
						|
    <#
 | 
						|
    .SYNOPSIS
 | 
						|
    Wrapper for class constructor to simplify importing GoBuilder.
 | 
						|
 | 
						|
    .DESCRIPTION
 | 
						|
    Create instance of GoBuilder with specified parameters.
 | 
						|
 | 
						|
    .PARAMETER Version
 | 
						|
    The version with which Go will be built.
 | 
						|
 | 
						|
    .PARAMETER Platform
 | 
						|
    The platform for which Go will be built.
 | 
						|
 | 
						|
    .PARAMETER Architecture
 | 
						|
    The architecture with which Go will be built.
 | 
						|
 | 
						|
    #>
 | 
						|
 | 
						|
    param (
 | 
						|
        [version] $Version,
 | 
						|
        [string] $Architecture,
 | 
						|
        [string] $Platform
 | 
						|
    )
 | 
						|
 | 
						|
    $Platform = $Platform.ToLower()  
 | 
						|
    if ($Platform -match 'win32') {
 | 
						|
        $builder = [WinGoBuilder]::New($Version, $Platform, $Architecture)
 | 
						|
    } elseif (($Platform -match 'linux') -or ($Platform -match 'darwin')) {
 | 
						|
        $builder = [NixGoBuilder]::New($Version, $Platform, $Architecture)
 | 
						|
    } else {
 | 
						|
        Write-Host "##vso[task.logissue type=error;] Invalid platform: $Platform"
 | 
						|
        exit 1
 | 
						|
    }
 | 
						|
 | 
						|
    return $builder
 | 
						|
}
 | 
						|
 | 
						|
### Create Go builder instance, and build artifact
 | 
						|
$Builder = Get-GoBuilder -Version $Version -Platform $Platform -Architecture $Architecture
 | 
						|
$Builder.Build()
 |