Retire old build farm (something new is coming) and update makefile for linux to not auto-build doc.

This commit is contained in:
Adam Ierymenko 2016-12-23 14:33:04 -08:00
parent 5bff70194b
commit 6b5d6efe6c
26 changed files with 2 additions and 6 deletions

View file

@ -0,0 +1,8 @@
Dockerized Linux Build Farm
======
This subfolder contains Dockerfiles and a script to build Linux packages for a variety of Linux distributions. It's also an excellent way to test your CPU fans and stress test your disk.
Running `build.sh` with no arguments builds everything. You can run `build.sh` with the name of a distro (e.g. centos-7) to only build that. Both 32 and 64 bit packages are built except where no 32-bit version of the distribution exists.
The `make-apt-repos.sh` and `make-rpm-repos.sh` scripts build repositories. They may require some editing for outside-of-ZeroTier use, and be careful with the apt one if you have an existing *aptly* configuration.

View file

@ -0,0 +1,13 @@
#FROM ambakshi/amazon-linux:2016.03
#MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
#RUN yum update -y
#RUN yum install -y epel-release
#RUN yum install -y make development-tools rpmdevtools clang gcc-c++ ruby ruby-devel
#RUN gem install ronn
FROM zerotier/zt1-build-amazon-2016.03-x64-base
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
ADD zt1-src.tar.gz /

69
attic/linux-build-farm/build.sh Executable file
View file

@ -0,0 +1,69 @@
#!/bin/bash
export PATH=/bin:/usr/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin
subdirs=$*
if [ ! -n "$subdirs" ]; then
subdirs=`find . -type d -name '*-*' -printf '%f '`
fi
if [ ! -d ./ubuntu-trusty ]; then
echo 'Must run from linux-build-farm subfolder.'
exit 1
fi
rm -f zt1-src.tar.gz
cd ..
git archive --format=tar.gz --prefix=ZeroTierOne/ -o linux-build-farm/zt1-src.tar.gz HEAD
cd linux-build-farm
# Note that --privileged is used so we can bind mount VM shares when building in a VM.
# It has no other impact or purpose, but probably doesn't matter here in any case.
for distro in $subdirs; do
echo
echo "--- BUILDING FOR $distro ---"
echo
cd $distro
if [ -d x64 ]; then
cd x64
mv ../../zt1-src.tar.gz .
docker build -t zt1-build-${distro}-x64 .
mv zt1-src.tar.gz ../..
cd ..
fi
if [ -d x86 ]; then
cd x86
mv ../../zt1-src.tar.gz .
docker build -t zt1-build-${distro}-x86 .
mv zt1-src.tar.gz ../..
cd ..
fi
rm -f *.deb *.rpm
# exit 0
if [ ! -n "`echo $distro | grep -F debian`" -a ! -n "`echo $distro | grep -F ubuntu`" ]; then
if [ -d x64 ]; then
docker run --rm -v `pwd`:/artifacts --privileged -it zt1-build-${distro}-x64 /bin/bash -c 'cd /ZeroTierOne ; make redhat ; cd .. ; cp `find /root/rpmbuild -type f -name *.rpm` /artifacts ; ls -l /artifacts'
fi
if [ -d x86 ]; then
docker run --rm -v `pwd`:/artifacts --privileged -it zt1-build-${distro}-x86 /bin/bash -c 'cd /ZeroTierOne ; make redhat ; cd .. ; cp `find /root/rpmbuild -type f -name *.rpm` /artifacts ; ls -l /artifacts'
fi
else
if [ -d x64 ]; then
docker run --rm -v `pwd`:/artifacts --privileged -it zt1-build-${distro}-x64 /bin/bash -c 'cd /ZeroTierOne ; make debian ; cd .. ; cp *.deb /artifacts ; ls -l /artifacts'
fi
if [ -d x86 ]; then
docker run --rm -v `pwd`:/artifacts --privileged -it zt1-build-${distro}-x86 /bin/bash -c 'cd /ZeroTierOne ; make debian ; cd .. ; cp *.deb /artifacts ; ls -l /artifacts'
fi
fi
cd ..
done
rm -f zt1-src.tar.gz

View file

@ -0,0 +1,13 @@
FROM centos:6
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN yum update -y
RUN yum install -y epel-release
RUN yum install -y make development-tools rpmdevtools clang gcc-c++ tar
RUN yum install -y nodejs npm
# Stop use of http-parser-devel which is installed by nodejs/npm
RUN rm -f /usr/include/http_parser.h
ADD zt1-src.tar.gz /

View file

@ -0,0 +1,13 @@
FROM toopher/centos-i386:centos6
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN yum update -y
RUN yum install -y epel-release
RUN yum install -y make development-tools rpmdevtools clang gcc-c++ tar
RUN yum install -y nodejs npm
# Stop use of http-parser-devel which is installed by nodejs/npm
RUN rm -f /usr/include/http_parser.h
ADD zt1-src.tar.gz /

View file

@ -0,0 +1,10 @@
FROM centos:7
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN yum update -y
RUN yum install -y epel-release
RUN yum install -y make development-tools rpmdevtools clang gcc-c++ ruby ruby-devel
RUN gem install ronn
ADD zt1-src.tar.gz /

View file

@ -0,0 +1,22 @@
#FROM zerotier/centos7-32bit
#MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
#RUN echo 'i686-redhat-linux' >/etc/rpm/platform
#RUN yum update -y
#RUN yum install -y make development-tools rpmdevtools http-parser-devel lz4-devel libnatpmp-devel
#RUN yum install -y gcc-c++
#RUN rpm --install --force https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
#RUN rpm --install --force ftp://rpmfind.net/linux/centos/6.8/os/i386/Packages/libffi-3.0.5-3.2.el6.i686.rpm
#RUN yum install -y clang
FROM zerotier/zt1-build-centos-7-x86-base
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN yum install -y ruby ruby-devel
RUN gem install ronn
#RUN rpm --erase http-parser-devel lz4-devel libnatpmp-devel
ADD zt1-src.tar.gz /

View file

@ -0,0 +1,12 @@
FROM debian:jessie
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN apt-get update
RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev libnatpmp-dev dh-systemd ruby-ronn g++ make devscripts clang-3.5
RUN ln -sf /usr/bin/clang++-3.5 /usr/bin/clang++
RUN ln -sf /usr/bin/clang-3.5 /usr/bin/clang
RUN dpkg --purge libhttp-parser-dev
ADD zt1-src.tar.gz /

View file

@ -0,0 +1,12 @@
FROM 32bit/debian:jessie
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN apt-get update
RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev libnatpmp-dev dh-systemd ruby-ronn g++ make devscripts clang-3.5
RUN ln -sf /usr/bin/clang++-3.5 /usr/bin/clang++
RUN ln -sf /usr/bin/clang-3.5 /usr/bin/clang
RUN dpkg --purge libhttp-parser-dev
ADD zt1-src.tar.gz /

View file

@ -0,0 +1,12 @@
FROM debian:stretch
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN apt-get update
RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev libnatpmp-dev dh-systemd ruby-ronn g++ make devscripts clang
#RUN ln -sf /usr/bin/clang++-3.5 /usr/bin/clang++
#RUN ln -sf /usr/bin/clang-3.5 /usr/bin/clang
RUN dpkg --purge libhttp-parser-dev
ADD zt1-src.tar.gz /

View file

@ -0,0 +1,12 @@
FROM mcandre/docker-debian-32bit:stretch
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN apt-get update
RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev libnatpmp-dev dh-systemd ruby-ronn g++ make devscripts clang
#RUN ln -sf /usr/bin/clang++-3.5 /usr/bin/clang++
#RUN ln -sf /usr/bin/clang-3.5 /usr/bin/clang
RUN dpkg --purge libhttp-parser-dev
ADD zt1-src.tar.gz /

View file

@ -0,0 +1,12 @@
FROM debian:wheezy
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN apt-get update
RUN apt-get install -y build-essential debhelper ruby-ronn g++ make devscripts
RUN dpkg --purge libhttp-parser-dev
ADD zt1-src.tar.gz /
RUN mv -f /ZeroTierOne/debian/control.wheezy /ZeroTierOne/debian/control
RUN mv -f /ZeroTierOne/debian/rules.wheezy /ZeroTierOne/debian/rules

View file

@ -0,0 +1,15 @@
#FROM tubia/debian:wheezy
#MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
#RUN apt-get update
#RUN apt-get install -y build-essential debhelper ruby-ronn g++ make devscripts
FROM zerotier/zt1-build-debian-wheezy-x86-base
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN dpkg --purge libhttp-parser-dev
ADD zt1-src.tar.gz /
RUN mv -f /ZeroTierOne/debian/control.wheezy /ZeroTierOne/debian/control
RUN mv -f /ZeroTierOne/debian/rules.wheezy /ZeroTierOne/debian/rules

View file

@ -0,0 +1,10 @@
FROM fedora:22
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN yum update -y
RUN yum install -y make rpmdevtools gcc-c++ rubygem-ronn json-parser-devel lz4-devel http-parser-devel libnatpmp-devel
RUN rpm --erase http-parser-devel
RUN yum install -y rubygem-ronn ruby
ADD zt1-src.tar.gz /

View file

@ -0,0 +1,19 @@
#FROM nickcis/fedora-32:22
#MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
#RUN mkdir -p /etc/dnf/vars
#RUN echo 'i386' >/etc/dnf/vars/basearch
#RUN echo 'i386' >/etc/dnf/vars/arch
#RUN yum update -y
#RUN yum install -y make rpmdevtools gcc-c++ rubygem-ronn json-parser-devel lz4-devel http-parser-devel libnatpmp-devel
FROM zerotier/zt1-build-fedora-22-x86-base
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN echo 'i686-redhat-linux' >/etc/rpm/platform
RUN rpm --erase http-parser-devel
RUN yum install -y rubygem-ronn ruby
ADD zt1-src.tar.gz /

View file

@ -0,0 +1,16 @@
#!/bin/bash
# This builds a series of Debian repositories for each distribution.
export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin
for distro in debian-* ubuntu-*; do
if [ -n "`find ${distro} -name '*.deb' -type f`" ]; then
arches=`ls ${distro}/*.deb | cut -d _ -f 3 | cut -d . -f 1 | xargs | sed 's/ /,/g'`
distro_name=`echo $distro | cut -d '-' -f 2`
echo '---' $distro / $distro_name / $arches
aptly repo create -architectures=${arches} -comment="ZeroTier, Inc. Debian Packages" -component="main" -distribution=${distro_name} zt-release-${distro_name}
aptly repo add zt-release-${distro_name} ${distro}/*.deb
aptly publish repo zt-release-${distro_name} $distro_name
fi
done

View file

@ -0,0 +1,64 @@
#!/bin/bash
export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin
GPG_KEY=contact@zerotier.com
rm -rf /tmp/zt-rpm-repo
mkdir /tmp/zt-rpm-repo
for distro in centos-* fedora-* amazon-*; do
dname=`echo $distro | cut -d '-' -f 1`
if [ "$dname" = "centos" ]; then
dname=el
fi
if [ "$dname" = "fedora" ]; then
dname=fc
fi
if [ "$dname" = "amazon" ]; then
dname=amzn1
fi
dvers=`echo $distro | cut -d '-' -f 2`
mkdir -p /tmp/zt-rpm-repo/$dname/$dvers
cp -v $distro/*.rpm /tmp/zt-rpm-repo/$dname/$dvers
done
rpmsign --resign --key-id=$GPG_KEY --digest-algo=sha256 `find /tmp/zt-rpm-repo -type f -name '*.rpm'`
for db in `find /tmp/zt-rpm-repo -mindepth 2 -maxdepth 2 -type d`; do
createrepo --database $db
done
# Stupid RHEL stuff
cd /tmp/zt-rpm-repo/el
ln -sf 6 6Client
ln -sf 6 6Workstation
ln -sf 6 6Server
ln -sf 6 6.0
ln -sf 6 6.1
ln -sf 6 6.2
ln -sf 6 6.3
ln -sf 6 6.4
ln -sf 6 6.5
ln -sf 6 6.6
ln -sf 6 6.7
ln -sf 6 6.8
ln -sf 6 6.9
ln -sf 7 7Client
ln -sf 7 7Workstation
ln -sf 7 7Server
ln -sf 7 7.0
ln -sf 7 7.1
ln -sf 7 7.2
ln -sf 7 7.3
ln -sf 7 7.4
ln -sf 7 7.5
ln -sf 7 7.6
ln -sf 7 7.7
ln -sf 7 7.8
ln -sf 7 7.9
echo
echo Repo created in /tmp/zt-rpm-repo

View file

@ -0,0 +1,20 @@
FROM alpine:latest
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
LABEL version="1.1.14"
LABEL description="Containerized ZeroTier One for use on CoreOS or other Docker-only Linux hosts."
# Uncomment to build in container
#RUN apk add --update alpine-sdk linux-headers
RUN apk add --update libgcc libstdc++
ADD zerotier-one /
RUN chmod 0755 /zerotier-one
RUN ln -sf /zerotier-one /zerotier-cli
RUN mkdir -p /var/lib/zerotier-one
ADD main.sh /
RUN chmod 0755 /main.sh
ENTRYPOINT /main.sh

View file

@ -0,0 +1,10 @@
#!/bin/sh
export PATH=/bin:/usr/bin:/usr/local/bin:/sbin:/usr/sbin
if [ ! -e /dev/net/tun ]; then
echo 'FATAL: cannot start ZeroTier One in container: /dev/net/tun not present.'
exit 1
fi
exec /zerotier-one

View file

@ -0,0 +1,12 @@
FROM ubuntu:14.04
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN apt-get update
RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev libnatpmp-dev dh-systemd ruby-ronn g++ make devscripts clang-3.6
RUN ln -sf /usr/bin/clang++-3.6 /usr/bin/clang++
RUN ln -sf /usr/bin/clang-3.6 /usr/bin/clang
RUN dpkg --purge libhttp-parser-dev
ADD zt1-src.tar.gz /

View file

@ -0,0 +1,12 @@
FROM 32bit/ubuntu:14.04
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN apt-get update
RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev libnatpmp-dev dh-systemd ruby-ronn g++ make devscripts clang-3.6
RUN ln -sf /usr/bin/clang++-3.6 /usr/bin/clang++
RUN ln -sf /usr/bin/clang-3.6 /usr/bin/clang
RUN dpkg --purge libhttp-parser-dev
ADD zt1-src.tar.gz /

View file

@ -0,0 +1,12 @@
FROM ubuntu:wily
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN apt-get update
RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev libnatpmp-dev dh-systemd ruby-ronn g++ make devscripts clang-3.7
RUN ln -sf /usr/bin/clang++-3.7 /usr/bin/clang++
RUN ln -sf /usr/bin/clang-3.7 /usr/bin/clang
RUN dpkg --purge libhttp-parser-dev
ADD zt1-src.tar.gz /

View file

@ -0,0 +1,12 @@
FROM daald/ubuntu32:wily
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN apt-get update
RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev libnatpmp-dev dh-systemd ruby-ronn g++ make devscripts clang-3.7
RUN ln -sf /usr/bin/clang++-3.7 /usr/bin/clang++
RUN ln -sf /usr/bin/clang-3.7 /usr/bin/clang
RUN dpkg --purge libhttp-parser-dev
ADD zt1-src.tar.gz /

View file

@ -0,0 +1,14 @@
FROM ubuntu:xenial
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN apt-get update
RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev libnatpmp-dev dh-systemd ruby-ronn g++ make devscripts clang-3.8
#RUN ln -sf /usr/bin/clang++-3.8 /usr/bin/clang++
#RUN ln -sf /usr/bin/clang-3.8 /usr/bin/clang
RUN rm -f /usr/bin/clang++ /usr/bin/clang
RUN dpkg --purge libhttp-parser-dev
ADD zt1-src.tar.gz /

View file

@ -0,0 +1,14 @@
FROM f69m/ubuntu32:xenial
MAINTAINER Adam Ierymenko <adam.ierymenko@zerotier.com>
RUN apt-get update
RUN apt-get install -y build-essential debhelper libhttp-parser-dev liblz4-dev libnatpmp-dev dh-systemd ruby-ronn g++ make devscripts clang-3.8
#RUN ln -sf /usr/bin/clang++-3.8 /usr/bin/clang++
#RUN ln -sf /usr/bin/clang-3.8 /usr/bin/clang
RUN rm -f /usr/bin/clang++ /usr/bin/clang
RUN dpkg --purge libhttp-parser-dev
ADD zt1-src.tar.gz /