mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-11-03 11:07:23 -05:00 
			
		
		
		
	This will help build server perform builds with copy of repo in a folder outside the original git repo folder. Also testing signed commits on GitHub.
		
			
				
	
	
		
			57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			57 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env bash
 | 
						|
#
 | 
						|
# Caddy build script. Automates proper versioning.
 | 
						|
#
 | 
						|
# Usage:
 | 
						|
#
 | 
						|
#     $ ./build.bash [output_filename] [git_repo]
 | 
						|
#
 | 
						|
# Outputs compiled program in current directory.
 | 
						|
# Default file name is 'ecaddy'.
 | 
						|
# Default git repo is current directory.
 | 
						|
# Builds always take place from current directory.
 | 
						|
 | 
						|
set -euo pipefail
 | 
						|
 | 
						|
: ${output_filename:="${1:-}"}
 | 
						|
: ${output_filename:="ecaddy"}
 | 
						|
 | 
						|
: ${git_repo:="${2:-}"}
 | 
						|
 | 
						|
pkg=main
 | 
						|
ldflags=()
 | 
						|
 | 
						|
# Timestamp of build
 | 
						|
name="${pkg}.buildDate"
 | 
						|
value=$(date -u +"%a %b %d %H:%M:%S %Z %Y")
 | 
						|
ldflags+=("-X" "\"${name}=${value}\"")
 | 
						|
 | 
						|
# Current tag, if HEAD is on a tag
 | 
						|
name="${pkg}.gitTag"
 | 
						|
set +e
 | 
						|
value="$(git -C "${git_repo}" describe --exact-match HEAD 2>/dev/null)"
 | 
						|
set -e
 | 
						|
ldflags+=("-X" "\"${name}=${value}\"")
 | 
						|
 | 
						|
# Nearest tag on branch
 | 
						|
name="${pkg}.gitNearestTag"
 | 
						|
value="$(git -C "${git_repo}" describe --abbrev=0 --tags HEAD)"
 | 
						|
ldflags+=("-X" "\"${name}=${value}\"")
 | 
						|
 | 
						|
# Commit SHA
 | 
						|
name="${pkg}.gitCommit"
 | 
						|
value="$(git -C "${git_repo}" rev-parse --short HEAD)"
 | 
						|
ldflags+=("-X" "\"${name}=${value}\"")
 | 
						|
 | 
						|
# Summary of uncommitted changes
 | 
						|
name="${pkg}.gitShortStat"
 | 
						|
value="$(git -C "${git_repo}" diff-index --shortstat HEAD)"
 | 
						|
ldflags+=("-X" "\"${name}=${value}\"")
 | 
						|
 | 
						|
# List of modified files
 | 
						|
name="${pkg}.gitFilesModified"
 | 
						|
value="$(git -C "${git_repo}" diff-index --name-only HEAD)"
 | 
						|
ldflags+=("-X" "\"${name}=${value}\"")
 | 
						|
 | 
						|
go build -ldflags "${ldflags[*]}" -o "${output_filename}"
 |