Ajout Makefile + script de génération de release
This commit is contained in:
parent
895f8d2f34
commit
97c2cfeef6
|
@ -1,2 +1,3 @@
|
||||||
/vendor
|
/vendor
|
||||||
/bin
|
/bin
|
||||||
|
/release
|
|
@ -0,0 +1,13 @@
|
||||||
|
build: pack
|
||||||
|
CGO_ENABLED=0 go build -mod vendor -v -o bin/junit2md ./cmd/junit2md
|
||||||
|
|
||||||
|
pack:
|
||||||
|
packr2
|
||||||
|
|
||||||
|
watch:
|
||||||
|
modd
|
||||||
|
|
||||||
|
release: pack
|
||||||
|
script/release
|
||||||
|
|
||||||
|
.PHONY: build pack watch release
|
|
@ -1,5 +1,4 @@
|
||||||
**/*.go
|
**/*.go
|
||||||
modd.conf {
|
modd.conf {
|
||||||
prep: packr2 -v
|
prep: make build
|
||||||
prep: go build -mod vendor -v -o bin/junit2md ./cmd/junit2md
|
|
||||||
}
|
}
|
|
@ -0,0 +1,102 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -eo pipefail
|
||||||
|
|
||||||
|
OS_TARGETS=(linux)
|
||||||
|
ARCH_TARGETS=${ARCH_TARGETS:-amd64 arm 386}
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
|
||||||
|
|
||||||
|
function build {
|
||||||
|
|
||||||
|
local name=$1
|
||||||
|
local srcdir=$2
|
||||||
|
local os=$3
|
||||||
|
local arch=$4
|
||||||
|
|
||||||
|
local dirname="$name-$os-$arch"
|
||||||
|
local destdir="$DIR/../release/$dirname"
|
||||||
|
|
||||||
|
rm -rf "$destdir"
|
||||||
|
mkdir -p "$destdir"
|
||||||
|
|
||||||
|
echo "building $dirname..."
|
||||||
|
|
||||||
|
CGO_ENABLED=0 GOOS="$os" GOARCH="$arch" go build \
|
||||||
|
-mod=vendor \
|
||||||
|
-ldflags="-s -w -X main.GitCommit=$(current_commit_ref) -X main.ProjectVersion=$(current_version)" \
|
||||||
|
-gcflags=-trimpath="${PWD}" \
|
||||||
|
-asmflags=-trimpath="${PWD}" \
|
||||||
|
-o "$destdir/$name" \
|
||||||
|
"$srcdir"
|
||||||
|
|
||||||
|
if [ ! -z "$(which upx)" ]; then
|
||||||
|
upx --best "$destdir/$name"
|
||||||
|
fi
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function current_commit_ref {
|
||||||
|
git rev-list -1 HEAD
|
||||||
|
}
|
||||||
|
|
||||||
|
function current_version {
|
||||||
|
local latest_tag=$(git describe --abbrev=0 2>/dev/null)
|
||||||
|
echo ${latest_tag:-0.0.0}
|
||||||
|
}
|
||||||
|
|
||||||
|
function copy {
|
||||||
|
|
||||||
|
local name=$1
|
||||||
|
local os=$2
|
||||||
|
local arch=$3
|
||||||
|
local src=$4
|
||||||
|
local dest=$5
|
||||||
|
|
||||||
|
local dirname="$name-$os-$arch"
|
||||||
|
local destdir="$DIR/../release/$dirname"
|
||||||
|
|
||||||
|
echo "copying '$src' to '$destdir/$dest'..."
|
||||||
|
|
||||||
|
mkdir -p "$(dirname $destdir/$dest)"
|
||||||
|
|
||||||
|
cp -rfL $src "$destdir/$dest"
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function compress {
|
||||||
|
|
||||||
|
local name=$1
|
||||||
|
local os=$2
|
||||||
|
local arch=$3
|
||||||
|
|
||||||
|
local dirname="$name-$os-$arch"
|
||||||
|
local destdir="$DIR/../release/$dirname"
|
||||||
|
|
||||||
|
echo "compressing $dirname..."
|
||||||
|
tar -czf "$destdir.tar.gz" -C "$destdir/../" "$dirname"
|
||||||
|
}
|
||||||
|
|
||||||
|
function release_junit2md {
|
||||||
|
|
||||||
|
local os=$1
|
||||||
|
local arch=$2
|
||||||
|
|
||||||
|
build 'junit2md' "$DIR/../cmd/junit2md" $os $arch
|
||||||
|
|
||||||
|
copy 'junit2md' $os $arch "$DIR/../README.md" "README.md"
|
||||||
|
copy 'junit2md' $os $arch "$DIR/../LICENSE" "LICENSE"
|
||||||
|
|
||||||
|
compress 'junit2md' $os $arch
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function main {
|
||||||
|
for os in ${OS_TARGETS[@]}; do
|
||||||
|
for arch in ${ARCH_TARGETS[@]}; do
|
||||||
|
release_junit2md $os $arch
|
||||||
|
done
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
main
|
Loading…
Reference in New Issue