Parcourir la source

Docker build now outputs build info file.

The idea is that the buildinfo.txt will be checked into source control when the built file is -- for example, when we push a new psiphon-tunnel-core.exe into the psiphon-circumvention-system repo. This will help us keep track of the exact code used to make the build.
Adam Pritchard il y a 11 ans
Parent
commit
712807b19c
3 fichiers modifiés avec 32 ajouts et 19 suppressions
  1. 1 0
      .gitignore
  2. 13 7
      AndroidLibrary/make.bash
  3. 18 12
      ConsoleClient/make.bash

+ 1 - 0
.gitignore

@@ -28,6 +28,7 @@ _testmain.go
 *.exe
 *.test
 *.prof
+*_buildinfo.txt
 
 # Mac OS X clutter
 *.DS_Store

+ 13 - 7
AndroidLibrary/make.bash

@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 
 set -e
-#set -xv # verbose output for testing
+#set -exv # verbose output for testing
 
 if [ ! -f make.bash ]; then
   echo 'make.bash must be run from $GOPATH/src/github.com/Psiphon-Labs/psiphon-tunnel-core/AndroidLibrary'
@@ -17,18 +17,24 @@ go get -d -v ./...
 #echo -e "Updating go-mobile...\n"
 #go get -u -d -v golang.org/x/mobile/...
 
+LIB_BASENAME="libgojni"
+BUILDINFOFILE="${LIB_BASENAME}_buildinfo.txt"
+BUILDDATE=$(date --iso-8601=seconds)
+BUILDREPO=$(git config --get remote.origin.url)
+BUILDREV=$(git rev-parse HEAD)
 LDFLAGS="\
--X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon.buildDate `date --iso-8601=seconds` \
--X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon.buildRepo `git config --get remote.origin.url` \
--X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon.buildRev `git rev-parse HEAD` \
+-X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon.buildDate $BUILDDATE \
+-X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon.buildRepo $BUILDREPO \
+-X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon.buildRev $BUILDREV \
 "
+echo -e "${BUILDDATE}\n${BUILDREPO}\n${BUILDREV}\n" > $BUILDINFOFILE
 echo -e "LDFLAGS=$LDFLAGS\n"
 
 echo -e "Building library...\n"
 CGO_ENABLED=1 GOOS=android GOARCH=arm GOARM=7 \
-  go build -a -v -ldflags="-shared $LDFLAGS" -o libgojni.so ./libpsi
+  go build -a -v -ldflags="-shared $LDFLAGS" -o ${LIB_BASENAME}.so ./libpsi
 
 mkdir -p libs/armeabi-v7a
-mv -f libgojni.so libs/armeabi-v7a/libgojni.so
+mv -f ${LIB_BASENAME}.so libs/armeabi-v7a/${LIB_BASENAME}.so
 
-echo -e "Library can be found at: libs/armeabi-v7a/libgojni.so\n"
+echo -e "Library can be found at: libs/armeabi-v7a/${LIB_BASENAME}.so\n"

+ 18 - 12
ConsoleClient/make.bash

@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 
 set -e
-#set -xv # verbose output for testing
+set -exv # verbose output for testing
 
 if [ ! -f make.bash ]; then
   echo 'make.bash must be run from $GOPATH/src/github.com/Psiphon-Labs/psiphon-tunnel-core/ConsoleClient'
@@ -14,30 +14,36 @@ CGO_ENABLED=1
 echo -e "go-getting dependencies...\n"
 go get -d -v ./...
 
+EXE_BASENAME="psiphon-tunnel-core"
+BUILDINFOFILE="${EXE_BASENAME}_buildinfo.txt"
+BUILDDATE=$(date --iso-8601=seconds)
+BUILDREPO=$(git config --get remote.origin.url)
+BUILDREV=$(git rev-parse HEAD)
 LDFLAGS="\
--X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon.buildDate `date --iso-8601=seconds` \
--X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon.buildRepo `git config --get remote.origin.url` \
--X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon.buildRev `git rev-parse HEAD` \
+-X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon.buildDate $BUILDDATE \
+-X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon.buildRepo $BUILDREPO \
+-X github.com/Psiphon-Labs/psiphon-tunnel-core/psiphon.buildRev $BUILDREV \
 "
+echo -e "${BUILDDATE}\n${BUILDREPO}\n${BUILDREV}\n" > $BUILDINFOFILE
 echo -e "LDFLAGS=$LDFLAGS\n"
 
 echo -e "\nBuilding windows-386..."
 CC=/usr/bin/i686-w64-mingw32-gcc \
-  gox -verbose -ldflags "$LDFLAGS" -osarch windows/386 -output windows_386_psiphon-tunnel-core
+  gox -verbose -ldflags "$LDFLAGS" -osarch windows/386 -output windows_386_${EXE_BASENAME}
 # We are finding that UPXing the full Windows Psiphon client produces better results
 # if psiphon-tunnel-core.exe is not already UPX'd.
-#upx --best windows_386_psiphon-tunnel-core.exe
+#upx --best windows_386_${EXE_BASENAME}.exe
 
 echo -e "\nBuilding windows-amd64..."
 CC=/usr/bin/x86_64-w64-mingw32-gcc \
-  gox -verbose -ldflags "$LDFLAGS" -osarch windows/amd64 -output windows_amd64_psiphon-tunnel-core
-upx --best windows_amd64_psiphon-tunnel-core.exe
+  gox -verbose -ldflags "$LDFLAGS" -osarch windows/amd64 -output windows_amd64_${EXE_BASENAME}
+upx --best windows_amd64_${EXE_BASENAME}.exe
 
 echo -e "\nBuilding linux-amd64..."
-gox -verbose -ldflags "$LDFLAGS" -osarch linux/amd64 -output linux_amd64_psiphon-tunnel-core
-upx --best linux_amd64_psiphon-tunnel-core
+gox -verbose -ldflags "$LDFLAGS" -osarch linux/amd64 -output linux_amd64_${EXE_BASENAME}
+upx --best linux_amd64_${EXE_BASENAME}
 
 echo -e "\nBuilding linux-386..."
 CFLAGS=-m32 \
-  gox -verbose -ldflags "$LDFLAGS" -osarch linux/386 -output linux_386_psiphon-tunnel-core
-upx --best linux_386_psiphon-tunnel-core
+  gox -verbose -ldflags "$LDFLAGS" -osarch linux/386 -output linux_386_${EXE_BASENAME}
+upx --best linux_386_${EXE_BASENAME}