mirror of
https://github.com/octoleo/syncthing.git
synced 2024-11-19 19:45:12 +00:00
Use syncthing/build:latest for building
This commit is contained in:
parent
57e8cd6eab
commit
35d3af5039
9
build.sh
9
build.sh
@ -2,7 +2,6 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
|
|
||||||
DOCKERIMGV=1.4.1-1
|
|
||||||
STTRACE=${STTRACE:-}
|
STTRACE=${STTRACE:-}
|
||||||
|
|
||||||
case "${1:-default}" in
|
case "${1:-default}" in
|
||||||
@ -103,16 +102,12 @@ case "${1:-default}" in
|
|||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
docker-init)
|
|
||||||
docker build -q -t syncthing/build:$DOCKERIMGV docker
|
|
||||||
;;
|
|
||||||
|
|
||||||
docker-all)
|
docker-all)
|
||||||
docker run --rm -h syncthing-builder -u $(id -u) -t \
|
docker run --rm -h syncthing-builder -u $(id -u) -t \
|
||||||
-v $(pwd):/go/src/github.com/syncthing/syncthing \
|
-v $(pwd):/go/src/github.com/syncthing/syncthing \
|
||||||
-w /go/src/github.com/syncthing/syncthing \
|
-w /go/src/github.com/syncthing/syncthing \
|
||||||
-e "STTRACE=$STTRACE" \
|
-e "STTRACE=$STTRACE" \
|
||||||
syncthing/build:$DOCKERIMGV \
|
syncthing/build:latest \
|
||||||
sh -c './build.sh clean \
|
sh -c './build.sh clean \
|
||||||
&& go vet ./cmd/... ./internal/... \
|
&& go vet ./cmd/... ./internal/... \
|
||||||
&& ( golint ./cmd/... ; golint ./internal/... ) | egrep -v "comment on exported|should have comment" \
|
&& ( golint ./cmd/... ; golint ./internal/... ) | egrep -v "comment on exported|should have comment" \
|
||||||
@ -125,7 +120,7 @@ case "${1:-default}" in
|
|||||||
-v $(pwd):/go/src/github.com/syncthing/syncthing \
|
-v $(pwd):/go/src/github.com/syncthing/syncthing \
|
||||||
-w /go/src/github.com/syncthing/syncthing \
|
-w /go/src/github.com/syncthing/syncthing \
|
||||||
-e "STTRACE=$STTRACE" \
|
-e "STTRACE=$STTRACE" \
|
||||||
syncthing/build:$DOCKERIMGV \
|
syncthing/build:latest \
|
||||||
sh -euxc './build.sh clean \
|
sh -euxc './build.sh clean \
|
||||||
&& go run build.go -race \
|
&& go run build.go -race \
|
||||||
&& export GOPATH=$(pwd)/Godeps/_workspace:$GOPATH \
|
&& export GOPATH=$(pwd)/Godeps/_workspace:$GOPATH \
|
||||||
|
@ -1,75 +0,0 @@
|
|||||||
FROM debian:squeeze
|
|
||||||
MAINTAINER Jakob Borg <jakob@nym.se>
|
|
||||||
|
|
||||||
ENV GOLANG_VERSION 1.4.1
|
|
||||||
|
|
||||||
# SCMs for "go get", gcc for cgo
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
ca-certificates curl gcc libc6-dev make \
|
|
||||||
bzr git mercurial unzip patch \
|
|
||||||
--no-install-recommends \
|
|
||||||
&& apt-get clean \
|
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
|
||||||
|
|
||||||
# Get the binary dist of Go to be able to bootstrap gonative.
|
|
||||||
|
|
||||||
RUN curl -sSL https://golang.org/dl/go${GOLANG_VERSION}.linux-amd64.tar.gz \
|
|
||||||
| tar -v -C /usr/local -xz
|
|
||||||
|
|
||||||
ENV PATH /usr/local/go/bin:$PATH
|
|
||||||
ENV GOPATH /go
|
|
||||||
ENV GO386 387
|
|
||||||
ENV GOARM 5
|
|
||||||
ENV PATH /go/bin:$PATH
|
|
||||||
|
|
||||||
RUN mkdir /go
|
|
||||||
WORKDIR /go
|
|
||||||
|
|
||||||
# Use gonative to install native Go for most arch/OS combos
|
|
||||||
|
|
||||||
RUN go get github.com/calmh/gonative \
|
|
||||||
&& cd /usr/local \
|
|
||||||
&& rm -rf go \
|
|
||||||
&& gonative -version $GOLANG_VERSION
|
|
||||||
|
|
||||||
# Rebuild the special and missing versions, using patches as appropriate
|
|
||||||
|
|
||||||
# RUN mkdir /tmp/patches
|
|
||||||
# ADD *.patch /tmp/patches/
|
|
||||||
# RUN bash -xec '\
|
|
||||||
# cd /usr/local/go ; \
|
|
||||||
# for patch in /tmp/patches/*.patch ; do \
|
|
||||||
# patch -p0 < "$patch" ; \
|
|
||||||
# done \
|
|
||||||
# '
|
|
||||||
|
|
||||||
RUN bash -xec '\
|
|
||||||
cd /usr/local/go/src; \
|
|
||||||
for platform in linux/386 freebsd/386 windows/386 linux/arm openbsd/amd64 openbsd/386; do \
|
|
||||||
GOOS=${platform%/*} \
|
|
||||||
GOARCH=${platform##*/} \
|
|
||||||
CGO_ENABLED=0 \
|
|
||||||
./make.bash --no-clean 2>&1; \
|
|
||||||
done \
|
|
||||||
&& ./make.bash --no-clean \
|
|
||||||
'
|
|
||||||
|
|
||||||
# Install packages needed for test coverage
|
|
||||||
|
|
||||||
RUN go get github.com/tools/godep \
|
|
||||||
&& go get golang.org/x/tools/cmd/cover \
|
|
||||||
&& go get github.com/axw/gocov/gocov \
|
|
||||||
&& go get github.com/AlekSi/gocov-xml
|
|
||||||
|
|
||||||
# Install tools "go vet" and "golint"
|
|
||||||
|
|
||||||
RUN go get golang.org/x/tools/cmd/vet \
|
|
||||||
&& go get github.com/golang/lint/golint
|
|
||||||
|
|
||||||
# Build standard library for race
|
|
||||||
|
|
||||||
RUN go install -race std
|
|
||||||
|
|
||||||
# Random build users needs to be able to create stuff in /go
|
|
||||||
|
|
||||||
RUN chmod -R 777 /go/bin /go/pkg /go/src
|
|
@ -1,29 +0,0 @@
|
|||||||
Docker Build
|
|
||||||
============
|
|
||||||
|
|
||||||
Official builds are produced using a Docker image specified by the
|
|
||||||
Dockerfile in this directory. The following commands exactly reproduce
|
|
||||||
the official build process.
|
|
||||||
|
|
||||||
Create an image called `syncthing/build` with the build environment.
|
|
||||||
|
|
||||||
```
|
|
||||||
./build.sh docker-init
|
|
||||||
```
|
|
||||||
|
|
||||||
> This is a Debian based image containing the latest stable version of
|
|
||||||
> Go set up for cross compilation. The cross compilation uses the
|
|
||||||
> dynamically linked standard libraries and SSE instructions for amd64
|
|
||||||
> builds, but static linking and minimal instruction set for the 386 and
|
|
||||||
> arm builds. The command should be run in the main repo directory, as a
|
|
||||||
> user with permission to perform Docker operations.
|
|
||||||
|
|
||||||
Build the full set of supported binaries.
|
|
||||||
|
|
||||||
```
|
|
||||||
./build.sh docker-all
|
|
||||||
```
|
|
||||||
|
|
||||||
> This uses a temporary container with the image from above and a volume
|
|
||||||
> mapped to the directory containing the source. Tests are run and
|
|
||||||
> binary packages created.
|
|
Loading…
Reference in New Issue
Block a user