Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CD-CI #1

Merged
merged 4 commits into from
May 27, 2019
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.go
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,5 @@
.go
.idea
/trafficmirror
vendor
trafficmirror
47 changes: 47 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
variables:
GL_URL: github.com/rb3ckers
GO_PROJECT_NAMESPACE: trafficmirror
IMAGE_FAMILY: stackstate/trafficmirror
CI_REGISTRY: docker.io

.prep_go: &prep_go
before_script:
- echo export GO_PROJECT_PATH="$GOPATH/src/$GL_URL/$GO_PROJECT_NAMESPACE"
- export GO_PROJECT_PATH="$GOPATH/src/$GL_URL/$GO_PROJECT_NAMESPACE"
- rm -rf $GOPATH/src/$GL_URL
- mkdir -p $GOPATH/src/$GL_URL
- echo ln -s $(pwd) $GO_PROJECT_PATH
- ln -s $(pwd) $GO_PROJECT_PATH
- cd $GO_PROJECT_PATH

stages:
- build
- docker_build

go_build:
<<: *prep_go
stage: build
image: golang:1.11
script:
- go get github.com/golang/dep/cmd/dep
- dep ensure
- mkdir -p build
- env GOOS=linux GOARCH=amd64 go build -o build/trafficmirror
- ls -la $GO_PROJECT_PATH/
artifacts:
paths:
- build
expire_in: 1 week

docker_build:
stage: docker_build
image: docker:latest
dependencies:
- go_build
services:
- docker:dind
script:
- docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY
- docker build -t $IMAGE_FAMILY:${CI_COMMIT_TAG:-dirty} .
- echo docker push $IMAGE_FAMILY:${CI_COMMIT_TAG:-dirty}
- docker push $IMAGE_FAMILY:${CI_COMMIT_TAG:-dirty}
9 changes: 9 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM debian:stretch

ADD build/trafficmirror /trafficmirror
ADD ./init.sh /init
RUN chmod +x /init

CMD ["/init"]

EXPOSE 8080
17 changes: 17 additions & 0 deletions Gopkg.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

34 changes: 34 additions & 0 deletions Gopkg.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# Gopkg.toml example
#
# Refer to https://golang.github.io/dep/docs/Gopkg.toml.html
# for detailed Gopkg.toml documentation.
#
# required = ["github.com/user/thing/cmd/thing"]
# ignored = ["github.com/user/project/pkgX", "bitbucket.org/user/project/pkgA/pkgY"]
#
# [[constraint]]
# name = "github.com/user/project"
# version = "1.0.0"
#
# [[constraint]]
# name = "github.com/user/project2"
# branch = "dev"
# source = "github.com/myfork/project2"
#
# [[override]]
# name = "github.com/x/y"
# version = "2.4.0"
#
# [prune]
# non-go = false
# go-tests = true
# unused-packages = true
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The example block is not needed



[[constraint]]
name = "github.com/sony/gobreaker"
version = "0.4.0"
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, some much needed dependency management.


[prune]
go-tests = true
unused-packages = true
11 changes: 11 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
SHELL := /bin/bash

clean:
rm -rf build

build:
source build-env.sh && \
cd $(GO_PROJECT_PATH) && \
dep ensure && \
mkdir -p build && \
GOOS=linux GOARCH=amd64 go build -o build/trafficmirror
12 changes: 12 additions & 0 deletions build-env.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# use with source
export GL_URL=github.com/rb3ckers
export GO_PROJECT_NAMESPACE=trafficmirror
if [ ! -d $(pwd)/.go ]
then
mkdir -p $(pwd)/.go/src/$GL_URL
ln -s $(pwd) $(pwd)/.go/src/$GL_URL/$GO_PROJECT_NAMESPACE
fi
export GOPATH=$(pwd)/.go
export GOBIN=$GOPATH/bin
export PATH=$GOBIN:$PATH
export GO_PROJECT_PATH=$(pwd)/.go/src/$GL_URL/$GO_PROJECT_NAMESPACE
8 changes: 8 additions & 0 deletions init.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/sh

LISTEN_PORT=${LISTEN_PORT:-7077}
MAIN=${MAIN:-localhost:8888}
EXTRA_PARAMS=$1

echo /trafficmirror /trafficmirror -listen ":${LISTEN_PORT}" -main=${MAIN} $EXTRA_PARAMS
/trafficmirror -listen ":${LISTEN_PORT}" -main=${MAIN} $EXTRA_PARAMS