mirror of
				https://github.com/optim-enterprises-bv/vault.git
				synced 2025-10-31 02:28:09 +00:00 
			
		
		
		
	 fa91af91e7
			
		
	
	fa91af91e7
	
	
	
		
			
			Remove gox in favor of go build. `gox` hasn't had a release to update it in many years, so is missing support for many modern systems, like `darwin/arm64`. In any case, we only use it for dev builds, where we don't even use the ability of it to build for multiple platforms. Release builds use `go build` now. So, this switches to `go build` everywhere. I pulled this down and tested it in Windows as well. (Side note: I couldn't get `gox` to work in Windows, so couldn't build before this change.)
		
			
				
	
	
		
			114 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
			
		
		
	
	
			114 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			Batchfile
		
	
	
	
	
	
| @echo off
 | |
| setlocal
 | |
| 
 | |
| set _EXITCODE=0
 | |
| 
 | |
| REM If no target is provided, default to test.
 | |
| if [%1]==[] goto test
 | |
| 
 | |
| set _TARGETS=bin,bootstrap,dev,generate,test,testacc,testrace,vet
 | |
| set _EXTERNAL_TOOLS=github.com/kardianos/govendor
 | |
| 
 | |
| REM Run target.
 | |
| for %%a in (%_TARGETS%) do (if x%1==x%%a goto %%a)
 | |
| goto usage
 | |
| 
 | |
| REM bin generates the releasable binaries for Vault
 | |
| :bin
 | |
| 	call :generate
 | |
| 	call .\scripts\windows\build.bat "%CD%"
 | |
| 	goto :eof
 | |
| 
 | |
| REM bootstrap downloads required build tools
 | |
| :bootstrap
 | |
|     for %%t in (%_EXTERNAL_TOOLS%) do (go get -u -v %%t)
 | |
| 	goto :eof
 | |
| 
 | |
| REM dev creates binaries for testing Vault locally. These are put
 | |
| REM into ./bin/ as well as %GOPATH%/bin
 | |
| :dev
 | |
| 	call :generate
 | |
| 	call .\scripts\windows\build.bat "%CD%" VAULT_DEV
 | |
| 	goto :eof
 | |
| 
 | |
| REM generate runs `go generate` to build the dynamically generated
 | |
| REM source files.
 | |
| :generate
 | |
| 	for /F "usebackq" %%f in (`go list ./... ^| findstr /v vendor`) do @go generate %%f
 | |
| 	goto :eof
 | |
| 
 | |
| REM test runs the unit tests and vets the code.
 | |
| :test
 | |
| 	call :testsetup
 | |
| 	go test %_TEST% %TESTARGS% -timeout=30s -parallel=4
 | |
| 	call :setMaxExitCode %ERRORLEVEL%
 | |
| 	echo.
 | |
| 	goto vet
 | |
| 
 | |
| REM testacc runs acceptance tests.
 | |
| :testacc
 | |
| 	call :testsetup
 | |
| 	if x%_TEST% == x./... goto testacc_fail
 | |
| 	if x%_TEST% == x.\... goto testacc_fail
 | |
| 	set VAULT_ACC=1
 | |
| 	go test %_TEST% -v %TESTARGS% -timeout 45m
 | |
| 	exit /b %ERRORLEVEL%
 | |
| :testacc_fail
 | |
| 	echo ERROR: Set %%TEST%% to a specific package.
 | |
| 	exit /b 1
 | |
| 
 | |
| REM testrace runs the race checker.
 | |
| :testrace
 | |
| 	call :testsetup
 | |
| 	go test -race %_TEST% %TESTARGS%
 | |
| 	exit /b %ERRORLEVEL%
 | |
| 
 | |
| REM testsetup calls `go generate` and defines the variables VAULT_ACC
 | |
| REM and _TEST. VAULT_ACC is always cleared. _TEST defaults to the value
 | |
| REM of the TEST environment variable, provided that TEST is defined,
 | |
| REM otherwise _TEST it is set to "./...".
 | |
| :testsetup
 | |
| 	call :generate
 | |
| 	set VAULT_ACC=
 | |
| 	set _TEST=./...
 | |
| 	if defined TEST set _TEST=%TEST%
 | |
| 	goto :eof
 | |
| 
 | |
| REM vet runs the Go source code static analysis tool `vet` to find
 | |
| REM any common errors.
 | |
| :vet
 | |
| 	set _VETARGS=-asmdecl -atomic -bool -buildtags -copylocks -methods -nilfunc -printf -rangeloops -shift -structtags -unsafeptr
 | |
| 	if defined VETARGS set _VETARGS=%VETARGS%
 | |
| 
 | |
| 	go tool vet 2>nul
 | |
| 	if %ERRORLEVEL% equ 3 go get golang.org/x/tools/cmd/vet
 | |
| 
 | |
| 	set _vetExitCode=0
 | |
| 	set _VAULT_PKG_DIRS=%TEMP%\vault-pkg-dirs.txt
 | |
| 
 | |
| 	go list -f {{.Dir}} ./... | findstr /v vendor >"%_VAULT_PKG_DIRS%"
 | |
| 	REM Skip the first row, which is the main vault package (.*github.com/hashicorp/vault$)
 | |
| 	for /f "delims= skip=1" %%d in ("%_VAULT_PKG_DIRS%") do (
 | |
| 		go tool vet %_VETARGS% "%%d"
 | |
| 		if ERRORLEVEL 1 set _vetExitCode=1
 | |
| 		call :setMaxExitCode %_vetExitCode%
 | |
| 	)
 | |
| 	del /f "%_VAULT_PKG_DIRS%" 2>NUL
 | |
| 	if %_vetExitCode% equ 0 exit /b %_EXITCODE%
 | |
| 	echo.
 | |
| 	echo Vet found suspicious constructs. Please check the reported constructs
 | |
| 	echo and fix them if necessary before submitting the code for reviewal.
 | |
| 	exit /b %_EXITCODE%
 | |
| 
 | |
| :setMaxExitCode
 | |
| 	if %1 gtr %_EXITCODE% set _EXITCODE=%1
 | |
| 	goto :eof
 | |
| 
 | |
| :usage
 | |
| 	echo usage: make [target]
 | |
| 	echo.
 | |
| 	echo target is in {%_TARGETS%}.
 | |
| 	echo target defaults to test if none is provided.
 | |
| 	exit /b 2
 | |
| 	goto :eof
 |