jenkins: No jenkins
This commit is contained in:
parent
c080f677cb
commit
57d5dfa80c
@ -1,71 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
# Copyright (C) 2016 The Syncthing Authors.
|
|
||||||
#
|
|
||||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
||||||
# You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
||||||
|
|
||||||
# This script should be run by Jenkins as './src/github.com/syncthing/syncthing/jenkins/build-linux.bash',
|
|
||||||
# that is, it should be run from $GOPATH.
|
|
||||||
|
|
||||||
. src/github.com/syncthing/syncthing/jenkins/common.bash
|
|
||||||
|
|
||||||
init
|
|
||||||
|
|
||||||
# after init we are in the source directory
|
|
||||||
|
|
||||||
clean
|
|
||||||
fetchExtra
|
|
||||||
buildSource
|
|
||||||
build
|
|
||||||
test
|
|
||||||
testWithCoverage
|
|
||||||
|
|
||||||
platforms=(
|
|
||||||
dragonfly-amd64
|
|
||||||
freebsd-amd64 freebsd-386
|
|
||||||
linux-amd64 linux-386 linux-arm linux-arm64 linux-ppc64 linux-ppc64le linux-mips linux-mipsle
|
|
||||||
netbsd-amd64 netbsd-386
|
|
||||||
openbsd-amd64 openbsd-386
|
|
||||||
)
|
|
||||||
|
|
||||||
echo Building
|
|
||||||
for plat in "${platforms[@]}"; do
|
|
||||||
echo Building "$plat"
|
|
||||||
|
|
||||||
goos="${plat%-*}"
|
|
||||||
goarch="${plat#*-}"
|
|
||||||
go run build.go -goos "$goos" -goarch "$goarch" tar
|
|
||||||
mv *.tar.gz "$WORKSPACE"
|
|
||||||
echo
|
|
||||||
done
|
|
||||||
|
|
||||||
export BUILD_USER=deb
|
|
||||||
go run build.go -goarch amd64 deb
|
|
||||||
go run build.go -goarch i386 deb
|
|
||||||
go run build.go -goarch armel deb
|
|
||||||
go run build.go -goarch armhf deb
|
|
||||||
go run build.go -goarch arm64 deb
|
|
||||||
|
|
||||||
mv *.deb "$WORKSPACE"
|
|
||||||
|
|
||||||
export BUILD_USER=snap
|
|
||||||
go run build.go -goarch amd64 snap
|
|
||||||
go run build.go -goarch armhf snap
|
|
||||||
go run build.go -goarch arm64 snap
|
|
||||||
|
|
||||||
mv *.snap "$WORKSPACE"
|
|
||||||
|
|
||||||
if [[ -d /usr/local/oldgo ]]; then
|
|
||||||
echo
|
|
||||||
echo Building with minimum supported Go version
|
|
||||||
export GOROOT=/usr/local/oldgo
|
|
||||||
export PATH="$GOROOT/bin:$PATH"
|
|
||||||
go version
|
|
||||||
echo
|
|
||||||
|
|
||||||
rm -rf "$GOPATH/pkg"
|
|
||||||
go run build.go install all # only compile, don't run lints and stuff
|
|
||||||
fi
|
|
||||||
@ -1,40 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
# Copyright (C) 2016 The Syncthing Authors.
|
|
||||||
#
|
|
||||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
||||||
# You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
||||||
|
|
||||||
# This script should be run by Jenkins as './src/github.com/syncthing/syncthing/jenkins/build-macos.bash',
|
|
||||||
# that is, it should be run from $GOPATH.
|
|
||||||
|
|
||||||
. src/github.com/syncthing/syncthing/jenkins/common.bash
|
|
||||||
|
|
||||||
init
|
|
||||||
|
|
||||||
# after init we are in the source directory
|
|
||||||
|
|
||||||
clean
|
|
||||||
fetchExtra
|
|
||||||
build
|
|
||||||
test
|
|
||||||
|
|
||||||
platforms=(
|
|
||||||
darwin-amd64 darwin-386
|
|
||||||
)
|
|
||||||
|
|
||||||
# Mac builds always require cgo
|
|
||||||
export CGO_ENABLED=1
|
|
||||||
|
|
||||||
echo Building
|
|
||||||
for plat in "${platforms[@]}"; do
|
|
||||||
echo Building "$plat"
|
|
||||||
|
|
||||||
goos="${plat%-*}"
|
|
||||||
goarch="${plat#*-}"
|
|
||||||
go run build.go -goos "$goos" -goarch "$goarch" tar
|
|
||||||
mv *.tar.gz "$WORKSPACE"
|
|
||||||
echo
|
|
||||||
done
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
# Copyright (C) 2017 The Syncthing Authors.
|
|
||||||
#
|
|
||||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
||||||
# You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
||||||
|
|
||||||
# This script should be run by Jenkins as './src/github.com/syncthing/syncthing/jenkins/build-macos.bash',
|
|
||||||
# that is, it should be run from $GOPATH.
|
|
||||||
|
|
||||||
. src/github.com/syncthing/syncthing/jenkins/common.bash
|
|
||||||
|
|
||||||
init
|
|
||||||
|
|
||||||
# after init we are in the source directory
|
|
||||||
|
|
||||||
clean
|
|
||||||
fetchExtra
|
|
||||||
|
|
||||||
# Solaris always uses cgo, as opposed to our regular cross builds
|
|
||||||
export CGO_ENABLED=1
|
|
||||||
|
|
||||||
# Quick build, generate assets
|
|
||||||
go run build.go build syncthing
|
|
||||||
|
|
||||||
# Test the stuff we are going to build only, as discosrv etc fails.
|
|
||||||
# -race is not supported on Solaris.
|
|
||||||
echo Testing
|
|
||||||
go test ./lib/... ./cmd/syncthing
|
|
||||||
echo
|
|
||||||
|
|
||||||
# Specifically set "syncthing" target as discosrv currently doesn't build
|
|
||||||
echo Building
|
|
||||||
go run build.go tar syncthing
|
|
||||||
mv *.tar.gz "$WORKSPACE"
|
|
||||||
echo
|
|
||||||
@ -1,55 +0,0 @@
|
|||||||
@echo off
|
|
||||||
|
|
||||||
rem Copyright (C) 2016 The Syncthing Authors.
|
|
||||||
rem
|
|
||||||
rem This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
rem License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
||||||
rem You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
||||||
|
|
||||||
rem This batch file should be run from the GOPATH.
|
|
||||||
rem It expects to run on amd64, for windows-amd64 Go to be installed in C:\go
|
|
||||||
rem and for windows-386 Go to be installed in C:\go-386.
|
|
||||||
|
|
||||||
rem cURL should be installed in C:\Program Files\cURL.
|
|
||||||
|
|
||||||
set ORIGPATH="C:\Program Files\cURL\bin";%PATH%
|
|
||||||
set PATH=c:\go\bin;%ORIGPATH%
|
|
||||||
set GOROOT=c:\go
|
|
||||||
|
|
||||||
cd >gopath
|
|
||||||
set /p GOPATH= <gopath
|
|
||||||
|
|
||||||
cd src\github.com\syncthing\syncthing
|
|
||||||
|
|
||||||
echo Initializing ^& cleaning
|
|
||||||
go version
|
|
||||||
git clean -fxd || goto error
|
|
||||||
go run build.go version
|
|
||||||
echo.
|
|
||||||
|
|
||||||
echo Fetching extras
|
|
||||||
mkdir extra
|
|
||||||
curl -s -L -o extra/Getting-Started.pdf https://docs.syncthing.net/pdf/Getting-Started.pdf || goto :error
|
|
||||||
curl -s -L -o extra/FAQ.pdf https://docs.syncthing.net/pdf/FAQ.pdf || goto :error
|
|
||||||
echo.
|
|
||||||
|
|
||||||
echo Testing
|
|
||||||
go run build.go test || goto :error
|
|
||||||
echo.
|
|
||||||
|
|
||||||
echo Building (amd64)
|
|
||||||
go run build.go zip || goto :error
|
|
||||||
echo.
|
|
||||||
|
|
||||||
set PATH=c:\go-386\bin;%ORIGPATH%
|
|
||||||
set GOROOT=c:\go-386
|
|
||||||
|
|
||||||
echo building (386)
|
|
||||||
go run build.go zip || goto :error
|
|
||||||
echo.
|
|
||||||
|
|
||||||
goto :EOF
|
|
||||||
|
|
||||||
:error
|
|
||||||
echo code #%errorlevel%.
|
|
||||||
exit /b %errorlevel%
|
|
||||||
@ -1,110 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
set -euo pipefail
|
|
||||||
|
|
||||||
# Copyright (C) 2016 The Syncthing Authors.
|
|
||||||
#
|
|
||||||
# This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
|
|
||||||
# You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
||||||
|
|
||||||
ulimit -t 600 || true
|
|
||||||
ulimit -d 1024000 || true
|
|
||||||
ulimit -m 1024000 || true
|
|
||||||
|
|
||||||
export CGO_ENABLED=0
|
|
||||||
export GO386=387
|
|
||||||
export GOARM=5
|
|
||||||
|
|
||||||
function init {
|
|
||||||
echo Initializing
|
|
||||||
export GOPATH=$(pwd)
|
|
||||||
export WORKSPACE="${WORKSPACE:-$GOPATH}"
|
|
||||||
go version
|
|
||||||
rm -f *.tar.gz *.zip *.deb *.snap
|
|
||||||
cd src/github.com/syncthing/syncthing
|
|
||||||
|
|
||||||
version=$(go run build.go version)
|
|
||||||
echo "Building $version"
|
|
||||||
echo
|
|
||||||
}
|
|
||||||
|
|
||||||
function clean {
|
|
||||||
echo Cleaning
|
|
||||||
rm -rf "$GOPATH/pkg"
|
|
||||||
git clean -fxd
|
|
||||||
rm -rf parts # created by snapcraft, contains git repo so not cleaned by git above
|
|
||||||
echo
|
|
||||||
}
|
|
||||||
|
|
||||||
function fetchExtra {
|
|
||||||
echo Fetching extra resources
|
|
||||||
mkdir extra
|
|
||||||
curl -s -o extra/Getting-Started.pdf https://docs.syncthing.net/pdf/Getting-Started.pdf
|
|
||||||
curl -s -o extra/FAQ.pdf https://docs.syncthing.net/pdf/FAQ.pdf
|
|
||||||
echo
|
|
||||||
}
|
|
||||||
|
|
||||||
function checkAuthorsCopyright {
|
|
||||||
echo Basic metadata checks
|
|
||||||
go run script/check-authors.go
|
|
||||||
go run script/check-copyright.go lib/ cmd/ script/
|
|
||||||
echo
|
|
||||||
}
|
|
||||||
|
|
||||||
function build {
|
|
||||||
echo Build
|
|
||||||
go run build.go
|
|
||||||
echo
|
|
||||||
}
|
|
||||||
|
|
||||||
function test {
|
|
||||||
echo Test with race
|
|
||||||
CGO_ENABLED=1 go run build.go -race test
|
|
||||||
echo
|
|
||||||
}
|
|
||||||
|
|
||||||
function testWithCoverage {
|
|
||||||
echo Test with coverage
|
|
||||||
CGO_ENABLED=1
|
|
||||||
|
|
||||||
echo "mode: set" > coverage.out
|
|
||||||
fail=0
|
|
||||||
|
|
||||||
# For every package in the repo
|
|
||||||
for dir in $(go list ./lib/... ./cmd/...) ; do
|
|
||||||
# run the tests
|
|
||||||
GOPATH="$(pwd)/Godeps/_workspace:$GOPATH" go test -coverprofile=profile.out $dir
|
|
||||||
if [ -f profile.out ] ; then
|
|
||||||
# and if there was test output, append it to coverage.out
|
|
||||||
grep -v "mode: " profile.out >> coverage.out
|
|
||||||
rm profile.out
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
gocov convert coverage.out | gocov-xml > coverage.xml
|
|
||||||
|
|
||||||
# This is usually run from within Jenkins. If it is, we need to
|
|
||||||
# tweak the paths in coverage.xml so cobertura finds the
|
|
||||||
# source.
|
|
||||||
if [[ "${WORKSPACE:-default}" != "default" ]] ; then
|
|
||||||
sed "s#$WORKSPACE##g" < coverage.xml > coverage.xml.new && mv coverage.xml.new coverage.xml
|
|
||||||
fi
|
|
||||||
|
|
||||||
notCovered=$(egrep -c '\s0$' coverage.out)
|
|
||||||
total=$(wc -l coverage.out | awk '{print $1}')
|
|
||||||
coverPct=$(awk "BEGIN{print (1 - $notCovered / $total) * 100}")
|
|
||||||
echo "$coverPct" > "coverage.txt"
|
|
||||||
echo "Test coverage is $coverPct%%"
|
|
||||||
echo
|
|
||||||
|
|
||||||
CGO_ENABLED=0 # reset to before
|
|
||||||
}
|
|
||||||
|
|
||||||
function buildSource {
|
|
||||||
echo Archiving source
|
|
||||||
echo "$version" > RELEASE
|
|
||||||
pushd .. >/dev/null
|
|
||||||
tar c -z -f "$WORKSPACE/syncthing-source-$version.tar.gz" --exclude .git syncthing
|
|
||||||
popd >/dev/null
|
|
||||||
echo
|
|
||||||
}
|
|
||||||
Loading…
x
Reference in New Issue
Block a user