Build and test scripts for libzbxpgsql.
- Install OS development packages
sudo yum -y groupinstall development
- Install docker repository (https://docs.docker.com/engine/installation/linux/centos/):
sudo tee /etc/yum.repos.d/docker.repo <<-'EOF'
[dockerrepo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
EOF
- Install docker
sudo yum -y install docker-engine
- Enable and start docker daemon:
sudo systemctl enable docker.service && sudo systemctl start docker.service
- Allow your userid to connect to docker daemon:
sudo usermod -G docker -a <userid>
Note: you'll need to logout/login to enable the new group permission
- Install docker-compose (https://docs.docker.com/compose/install/):
sudo curl -L https://github.com/docker/compose/releases/download/1.8.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
- Clone this repo
- Clone
libzbxpgsqlsources into./libzbxpgsql - Ensure
PACKAGE_VERSIONinMakefilematches theAC_INITversion in./libzbxpgsql/configure.ac - Unzip Zabbix sources into
./zabbix-X.X.X(2.2.0, 3.0.0, & 3.2.0) - Build the Docker images with
make docker-images- Take a nap, this will run a while...
This repo uses Docker to create immutable build and test environments so that:
- Build and tests run in a known state
- Developer workstation is left alone
- Multiple operating systems can be tested quickly
All Dockerfiles are stored and built in ./docker.
-
make docker-images:Builds all Docker images required to build, package and test
libzbxpgsql- Note: This will take a while to run initially
-
make libzbxpgsql.so:Compiles the main module in place (
./libzbxpgsql/src/libs/libzbxpgsql.so) -
make dist:Builds a source distribution archive, used as input for packaging systems
-
make package [OPTION=VALUE, ...]:Builds a package for the desired target. Supports the following options:
ZABBIX_VERSION=n.n.nTARGET_MANAGER=apt|yumTARGET_OS=rhel|debian|ubuntuTARGET_OS_MAJOR=6|7|wheezy|jessie|precise|trustyTARGET_ARCH=amd64|x86_64
-
./package-all.sh:Performs the above builds for all supported versions of the package
-
make package-tests:Test the installation and configuration of built packages on all supported operating systems
-
make key-tests:Run tests using a live agent against all supported versions of PostgreSQL. This requires
make testenvto be running in another terminal. -
make testenv:Use
docker-composeto run all supported versions of PostgreSQL and a Zabbix agent loaded withlibzbxpgsql(ifmake libzbxpgsql.sohas been run) -
make agent:Start the Zabbix v3 agent on the build container
-
make shell-<OS>:Run an interactive shell in a new instance of the
libzbxpgsql/buildcontainer on specified OS. Supported OS's are:- wheezy
- jessie
- precise
- trusty
- centos-6
- centos-7
-
sudo make clean:Destroy all build and package output, including the
./releasedirectory -
make docker-clean-all:Destroy all docker containers and images