cpg1111/maestro

View on GitHub
Makefile

Summary

Maintainability
Test Coverage
ifeq ($(OS),Windows_NT)
    LDD_CMD = echo "Pff. Seriously? Windows?"; exit 1;
    CCFLAGS += -D WIN32
    ifeq ($(PROCESSOR_ARCHITECTURE),AMD64)
        CCFLAGS += -D AMD64
    endif
    ifeq ($(PROCESSOR_ARCHITECTURE),x86)
        CCFLAGS += -D IA32
    endif
else
    UNAME_S := $(shell uname -s)
    ifeq ($(UNAME_S),Linux)
        CCFLAGS += -D LINUX
        LDD_CMD = ldd
    endif
    ifeq ($(UNAME_S),Darwin)
        CCFLAGS += -D OSX
        LDD_CMD = otool -l
    endif
    UNAME_P := $(shell uname -p)
    ifeq ($(UNAME_P),x86_64)
        CCFLAGS += -D AMD64
    endif
    ifneq ($(filter %86,$(UNAME_P)),)
        CCFLAGS += -D IA32
    endif
    ifneq ($(filter arm%,$(UNAME_P)),)
        CCFLAGS += -D ARM
    endif
endif
all: build
get-deps:
    mkdir -p tmp && \
    cd tmp && \
    curl -o zlib-1.2.8.tar.gz http://zlib.net/zlib-1.2.8.tar.gz && \
    tar xzvf zlib-1.2.8.tar.gz && \
    cd zlib-1.2.8 && \
    ./configure && \
    make && make install && \
    curl -o openssl-1.0.2h.tar.gz https://openssl.org/source/openssl-1.0.2h.tar.gz && \
    tar xzvf openssl-1.0.2h.tar.gz && \
    cd openssl-1.0.2h && \
    ./config --prefix=/usr \
             --openssldir=/etc/ssl \
             --libdir=lib \
             shared \
             zlib-dynamic && \
    make depend && \
    make && make install && \
    curl -L -o http-parser.tar.gz -z http-parser.tar.gz https://github.com/nodejs/http-parser/archive/v2.7.0.tar.gz && \
    tar xzvf http-parser.tar.gz && \
    cd http-parser-2.7.0 && \
    PREFIX=/usr make package && PREFIX=/usr/ make install && ls /usr/include/ && ls /usr/lib/
    curl -L -o libssh.tar.gz -z libssh.tar.gz https://www.libssh2.org/download/libssh2-1.4.2.tar.gz
    tar xzvf libssh.tar.gz
    cd libssh2-1.4.2 && \
    ./configure && \
    make && make install
    curl -L -o v0.22.0.tar.gz -z v0.22.0.tar.gz https://github.com/libgit2/libgit2/archive/v0.22.0.tar.gz
    tar xzvf v0.22.0.tar.gz
    cd libgit2-0.22.0 && \
    pwd && \
    mkdir build && \
    cd build && \
    pwd && \
    cmake .. \
        -DCMAKE_INSTALL_PREFIX=/usr/ \
        -DTHREADSAFE=ON \
        -DBUILD_CLAR=OFF \
        && \
    cmake --build . --target install && \
    cd -
    rm -rf libgit2-0.22.0
    rm v0.22.0.tar.gz
    cd ${GOPATH} && \
    go get -u github.com/kardianos/govendor && \
    cd - && \
    glide install
    rm -rf tmp
build:
    glide install
    go build -linkshared -o maestro github.com/cpg1111/maestro/
    $(LDD_CMD) ./maestro
install:
    cp ./maestro /usr/bin/maestro
    mkdir /etc/maestro/
    cp ./test_conf.toml /etc/maestro/conf.toml
clean:
    rm -rf $GOPATH/bin/github.com/cpg1111/maestro $GOPATH/pkg/github.com/cpg1111/maestro $GOPATH/src/github.com/cpg1111/kubongo/maestro
test:
    go test -v ./...
uninstall:
    rm -rf /etc/maestro
    rm -rf /usr/bin/maestro
docker:
    docker build -t maestro_c -f Dockerfile_c .
    docker build -t maestro_build -f Dockerfile_build .
    docker build -t maestro_bin_deps -f Dockerfile_bin .
    docker build -t maestro -f Dockerfile_fully_loaded .
docker-test:
    docker build -t maestro_c -f Dockerfile_c .
    docker build -t maestro_test -f Dockerfile_test .
    docker run --rm -it \
    -v ${HOME}/.ssh/:/root/.ssh/ \
    -v `pwd`:/etc/maestro/ \
    -v ${DOCKER_CERT_PATH}:${DOCKER_CERT_PATH} \
    -e DOCKER_HOST=${DOCKER_HOST} \
    -e DOCKER_MACHINE_NAME=${DOCKER_MACHINE_NAME} \
    -e DOCKER_TLS_VERIFY=1 \
    -e DOCKER_CERT_PATH=${DOCKER_CERT_PATH} \
    maestro_test ./cleanUp/
    #docker run --rm -it \
    #-v ${HOME}/.ssh/:/root/.ssh/ \
    #-v `pwd`:/etc/maestro/ \
    #-v ${DOCKER_CERT_PATH}:${DOCKER_CERT_PATH} \
    #-e DOCKER_HOST=${DOCKER_HOST} \
    #-e DOCKER_MACHINE_NAME=${DOCKER_MACHINE_NAME} \
    #-e DOCKER_TLS_VERIFY=1 \
    #-e DOCKER_CERT_PATH=${DOCKER_CERT_PATH} \
    #maestro_test ./config/
    docker run --rm -it \
    -v ${HOME}/.ssh/:/root/.ssh/ \
    -v `pwd`:/etc/maestro/ \
    -v ${DOCKER_CERT_PATH}:${DOCKER_CERT_PATH} \
    -e DOCKER_HOST=${DOCKER_HOST} \
    -e DOCKER_MACHINE_NAME=${DOCKER_MACHINE_NAME} \
    -e DOCKER_TLS_VERIFY=1 \
    -e DOCKER_CERT_PATH=${DOCKER_CERT_PATH} \
    maestro_test ./credentials/
    docker run --rm -it \
    -v ${HOME}/.ssh/:/root/.ssh/ \
    -v `pwd`:/etc/maestro/ \
    -v ${DOCKER_CERT_PATH}:${DOCKER_CERT_PATH} \
    -e DOCKER_HOST=${DOCKER_HOST} \
    -e DOCKER_MACHINE_NAME=${DOCKER_MACHINE_NAME} \
    -e DOCKER_TLS_VERIFY=1 \
    -e DOCKER_CERT_PATH=${DOCKER_CERT_PATH} \
    maestro_test ./environment/
    docker run --rm -it \
    -v ${HOME}/.ssh/:/root/.ssh/ \
    -v `pwd`:/etc/maestro/ \
    -v ${DOCKER_CERT_PATH}:${DOCKER_CERT_PATH} \
    -e DOCKER_HOST=${DOCKER_HOST} \
    -e DOCKER_MACHINE_NAME=${DOCKER_MACHINE_NAME} \
    -e DOCKER_TLS_VERIFY=1 \
    -e DOCKER_CERT_PATH=${DOCKER_CERT_PATH} \
    maestro_test ./pipeline/
    docker run --rm -it \
    -v ${HOME}/.ssh/:/root/.ssh/ \
    -v `pwd`:/etc/maestro/ \
    -v ${DOCKER_CERT_PATH}:${DOCKER_CERT_PATH} \
    -e DOCKER_HOST=${DOCKER_HOST} \
    -e DOCKER_MACHINE_NAME=${DOCKER_MACHINE_NAME} \
    -e DOCKER_TLS_VERIFY=1 \
    -e DOCKER_CERT_PATH=${DOCKER_CERT_PATH} \
    maestro_test ./statecom/
    docker run --rm -it \
    -v ${HOME}/.ssh/:/root/.ssh/ \
    -v `pwd`:/etc/maestro/ \
    -v ${DOCKER_CERT_PATH}:${DOCKER_CERT_PATH} \
    -e DOCKER_HOST=${DOCKER_HOST} \
    -e DOCKER_MACHINE_NAME=${DOCKER_MACHINE_NAME} \
    -e DOCKER_TLS_VERIFY=1 \
    -e DOCKER_CERT_PATH=${DOCKER_CERT_PATH} \
    maestro_test ./util/
e2e-test:
    docker run --rm -it \
    -v ${HOME}/.ssh/:/root/.ssh/ \
    -v `pwd`:/etc/maestro/ \
    -v ${DOCKER_CERT_PATH}:${DOCKER_CERT_PATH} \
    -e DOCKER_HOST=${DOCKER_HOST} \
    -e DOCKER_MACHINE_NAME=${DOCKER_MACHINE_NAME} \
    -e DOCKER_TLS_VERIFY=1 \
    -e DOCKER_CERT_PATH=${DOCKER_CERT_PATH} \
    maestro \
    --clone-path=/tmp/build \
    --branch=master \
    --prev-commit=ca30ac184cd46fc1c7d59d7973f87350050e39ee \
    --curr-commit=eaeca0254dc1bd04413f7823fe03f81583ed6b9c \
    --config=/etc/maestro/test_conf.toml \
    --deploy=true