From 17337374493b40e2bfe92eb69f1829d24928027f Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Fri, 23 Jan 2015 11:31:34 +0100 Subject: [PATCH 01/26] Removing unused flags --- env/config.go | 4 +--- main.go | 8 ++------ 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/env/config.go b/env/config.go index 474ef19..311dd89 100644 --- a/env/config.go +++ b/env/config.go @@ -8,9 +8,7 @@ type Flags struct { ForceColors bool EmailDomain string - SessionDuration int - ClassicRegistration bool - UsernameReservation bool + SessionDuration int RedisAddress string RedisDatabase int diff --git a/main.go b/main.go index 4761cc8..b90536f 100644 --- a/main.go +++ b/main.go @@ -27,9 +27,7 @@ var ( forceColors = flag.Bool("force_colors", false, "Force colored prompt?") emailDomain = flag.String("email_domain", "lavaboom.io", "Domain of the default email service") // Registration settings - sessionDuration = flag.Int("session_duration", 72, "Session duration expressed in hours") - classicRegistration = flag.Bool("classic_registration", false, "Classic registration enabled?") - usernameReservation = flag.Bool("username_reservation", false, "Username reservation enabled?") + sessionDuration = flag.Int("session_duration", 72, "Session duration expressed in hours") // Cache-related flags redisAddress = flag.String("redis_address", func() string { address := os.Getenv("REDIS_PORT_6379_TCP_ADDR") @@ -89,9 +87,7 @@ func main() { ForceColors: *forceColors, EmailDomain: *emailDomain, - SessionDuration: *sessionDuration, - ClassicRegistration: *classicRegistration, - UsernameReservation: *usernameReservation, + SessionDuration: *sessionDuration, RedisAddress: *redisAddress, RedisDatabase: *redisDatabase, From 3c522156d4de82acf7ada072985e2e3c742d3095 Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Fri, 23 Jan 2015 12:03:06 +0100 Subject: [PATCH 02/26] Updated README.md --- README.md | 59 ++++++++++++++++++++++++++++++++++++++++++++----------- main.go | 10 +++++----- 2 files changed, 52 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 0750088..cbdb5a2 100644 --- a/README.md +++ b/README.md @@ -4,10 +4,8 @@ To install: ``` go get github.com/lavab/api -api -curl --data "username=abc&password=def" localhost:5000/signup -curl --data "username=abc&password=def" localhost:5000/login -curl --header "Auth: " localhost:5000/me +./api +curl localhost:5000 ``` ## Configuration variables @@ -15,23 +13,34 @@ curl --header "Auth: " localhost:5000/me You can use either commandline flags: ``` { api } master » ./api -help -Usage of api: +Usage of api + -api_version="v0": Shown API version -bind=":5000": Network address used to bind - -classic_registration=false: Classic registration enabled? + -config="": config file to load + -email_domain="lavaboom.io": Domain of the default email service + -etcd_address="": etcd peer addresses split by commas + -etcd_ca_file="": etcd path to server cert's ca + -etcd_cert_file="": etcd path to client cert file + -etcd_key_file="": etcd path to client key file + -etcd_path="settings/": Path of the keys -force_colors=false: Force colored prompt? -log="text": Log formatter type. Either "json" or "text" + -loggly_token="": Loggly token + -nats_address="nats://127.0.0.1:4222": Address of the NATS server + -redis_address="127.0.0.1:6379": Address of the redis server + -redis_db=0: Index of redis database to use + -redis_password="": Password of the redis server + -rethinkdb_address="127.0.0.1:28015": Address of the RethinkDB database -rethinkdb_db="dev": Database name on the RethinkDB server -rethinkdb_key="": Authentication key of the RethinkDB database - -rethinkdb_url="localhost:28015": Address of the RethinkDB database -session_duration=72: Session duration expressed in hours - -version="v0": Shown API version + -yubicloud_id="": YubiCloud API id + -yubicloud_key="": YubiCloud API key ``` Or environment variables: ``` -{ api } master » BIND=127.0.0.1:5000 CLASSIC_REGISTRATION=false \ -FORCE_COLORS=false LOG=text RETHINKDB_DB=dev RETHINKDB_KEY="" \ -RETHINKDB_URL=localhost:28015 SESSION_DURATION=72 VERSION=v0 ./api +{ api } master » BIND=127.0.0.1:6000 VERSION=v1 ./api ``` Or configuration files: @@ -39,7 +48,6 @@ Or configuration files: { api } master » cat api.conf # lines beggining with a "#" character are treated as comments bind :5000 -classic_registration false force_colors false log text @@ -54,6 +62,33 @@ version=v0 { api } master » ./api -config api.conf ``` +## Flags list + +| Flag or config variable name | Environment variable name | Default value | Description | +|:---------------------------- | ------------------------- | --------| ----- | +| api_version | `API_VERSION` | v0 | Shown API version | +| bind | `BIND` | 0.0.0.0:5000 | Network address used to bind | +| config | `CONFIG` | _empty_ | Config file to load | +| email_domain | `EMAIL_DOMAIN` | lavaboom.io | Domain of the default email service | +| etcd_address | `ETCD_ADDRESS` | _empty_ | etcd peer addresses split by commas | +| etcd_ca_file | `ETCD_CA_FILE` | _empty_ | etcd path to server cert's ca | +| etcd_cert_file | `ETCD_CERT_FILE` | _empty_ | etcd path to client cert file | +| etcd_key_file | `ETCD_KEY_FILE` | _empty_ | etcd path to client key file | +| etcd_path | `ETCD_PATH` | _empty_ | Path of the keys | +| force_colors | `FORCE_COLORS` | false | Force colored prompt? | +| log | `LOG` | text | Log formatter type. Either "json" or "text". | +| loggly_token | `LOGGLY_TOKEN` | _empty_ | Token used to connect to Loggly | +| nats_address | `NATS_ADDRESS` | nats://127.0.0.1:4222 | Address of the NATS server | +| redis_address | `REDIS_ADDRESS` | 127.0.0.1:6379 | Address of the redis server | +| redis_db | `REDIS_DB` | 0 | Index of redis database to use | +| redis_password | `REDIS_PASSWORD` | _empty_ | Password of the redis server | +| rethinkdb_address | `RETHINKDB_ADDRESS` | 127.0.0.1:28015 | Address of the RethinkDB database | +| rethinkdb_db | `RETHINKDB_DB` | dev |Database name on the RethinkDB server | +| rethinkdb_key | `RETHINKDB_KEY` | _empty_ | Authentication key of the RethinkDB database | +| session_duration | `SESSION_DURATION` | 72 | Session duration expressed in hours | +| yubicloud_id | `YUBICLOUD_ID` | _empty_ | YubiCloud API ID. | +| yubicloud_key | `YUBICLOUD_KEY` | _empty_ | YubiCloud API key. | + ## Build status: - `master` - [![Circle CI](https://circleci.com/gh/lavab/api/tree/master.svg?style=svg&circle-token=4a52d619a03d0249906195d6447ceb60a475c0c5)](https://circleci.com/gh/lavab/api/tree/master) [![Coverage Status](https://coveralls.io/repos/lavab/api/badge.svg?branch=master)](https://coveralls.io/r/lavab/api?branch=master) diff --git a/main.go b/main.go index b90536f..60244ee 100644 --- a/main.go +++ b/main.go @@ -68,11 +68,11 @@ var ( // Loggly URL logglyToken = flag.String("loggly_token", "", "Loggly token") // etcd - etcdAddress = flag.String("etcd-address", "", "etcd peer addresses split by commas") - etcdCAFile = flag.String("etcd-ca-file", "", "etcd path to server cert's ca") - etcdCertFile = flag.String("etcd-cert-file", "", "etcd path to client cert file") - etcdKeyFile = flag.String("etcd-key-file", "", "etcd path to client key file") - etcdPath = flag.String("etcd-path", "settings/", "Path of the keys") + etcdAddress = flag.String("etcd_address", "", "etcd peer addresses split by commas") + etcdCAFile = flag.String("etcd_ca_file", "", "etcd path to server cert's ca") + etcdCertFile = flag.String("etcd_cert_file", "", "etcd path to client cert file") + etcdKeyFile = flag.String("etcd_key_file", "", "etcd path to client key file") + etcdPath = flag.String("etcd_path", "settings/", "Path of the keys") ) func main() { From 04b68a9efcd65a8926c3fafa4ce13b111c005945 Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Sat, 24 Jan 2015 00:47:53 +0100 Subject: [PATCH 03/26] Fixed tests --- routes/init_test.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/routes/init_test.go b/routes/init_test.go index d5619f7..c7b461b 100644 --- a/routes/init_test.go +++ b/routes/init_test.go @@ -23,9 +23,7 @@ func init() { LogFormatterType: "text", ForceColors: true, - SessionDuration: 72, - ClassicRegistration: true, - UsernameReservation: true, + SessionDuration: 72, RedisAddress: "127.0.0.1:6379", From fae40156353e62ef09f8f449c049e7de1250366f Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Sat, 24 Jan 2015 00:54:41 +0100 Subject: [PATCH 04/26] Tests fix #2 --- setup/setup_test.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/setup/setup_test.go b/setup/setup_test.go index c455a0c..c10f95d 100644 --- a/setup/setup_test.go +++ b/setup/setup_test.go @@ -15,8 +15,7 @@ func TestSetup(t *testing.T) { LogFormatterType: "text", ForceColors: true, - SessionDuration: 72, - ClassicRegistration: true, + SessionDuration: 72, RedisAddress: "127.0.0.1:6379", From a781796cef94e2b2ba884c3140ecf8115f099846 Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Sun, 25 Jan 2015 22:04:22 +0100 Subject: [PATCH 05/26] Added .drone.yml --- .drone.yml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 .drone.yml diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..ad5a833 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,13 @@ +image: go1.4 +env: + - GOPATH=/var/cache/drone +services: + - redis + - apcera/gnatsd + - dockerfile/rethinkdb +script: + - go get golang.org/x/tools/cmd/cover + - go get github.com/mattn/goveralls + - go test -v github.com/lavab/api/setup + - go test -v -covermode=count -coverprofile=coverage.out github.com/lavab/api/routes + - goveralls -coverprofile=coverage.out -service=lavadrone -repotoken $COVERALLS_TOKEN From 9f63565f7cfe4b45ff37aed3cadb38756fee9be1 Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Sun, 25 Jan 2015 22:07:45 +0100 Subject: [PATCH 06/26] Changed base image to go:1.4.1 --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index ad5a833..e5daf1b 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,4 +1,4 @@ -image: go1.4 +image: golang:1.4.1 env: - GOPATH=/var/cache/drone services: From 7c43f122caccd939334b7bd55eae937a85b5dc66 Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Sun, 25 Jan 2015 22:09:16 +0100 Subject: [PATCH 07/26] Reverting version to go1.3 --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index e5daf1b..6d5e889 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,4 +1,4 @@ -image: golang:1.4.1 +image: go1.3 env: - GOPATH=/var/cache/drone services: From 90e9f7e2ecc76107cc72a75453b6d5e490976ea8 Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Sun, 25 Jan 2015 22:14:15 +0100 Subject: [PATCH 08/26] you actually have to download dependencies --- .drone.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.drone.yml b/.drone.yml index 6d5e889..3a23c97 100644 --- a/.drone.yml +++ b/.drone.yml @@ -6,6 +6,7 @@ services: - apcera/gnatsd - dockerfile/rethinkdb script: + - go get ./... - go get golang.org/x/tools/cmd/cover - go get github.com/mattn/goveralls - go test -v github.com/lavab/api/setup From d91e3f153bee58d8215a6673c16453a6a7831a9b Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Sun, 25 Jan 2015 22:16:14 +0100 Subject: [PATCH 09/26] Modifying dependency fetching --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 3a23c97..3407a27 100644 --- a/.drone.yml +++ b/.drone.yml @@ -6,7 +6,7 @@ services: - apcera/gnatsd - dockerfile/rethinkdb script: - - go get ./... + - go get -t -v ./... - go get golang.org/x/tools/cmd/cover - go get github.com/mattn/goveralls - go test -v github.com/lavab/api/setup From ba75c6804488a7281d14f035b52104e8239f6b77 Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Sun, 25 Jan 2015 22:24:25 +0100 Subject: [PATCH 10/26] Changing goveralls path to GOPATH/bin --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 3407a27..ea97ab0 100644 --- a/.drone.yml +++ b/.drone.yml @@ -11,4 +11,4 @@ script: - go get github.com/mattn/goveralls - go test -v github.com/lavab/api/setup - go test -v -covermode=count -coverprofile=coverage.out github.com/lavab/api/routes - - goveralls -coverprofile=coverage.out -service=lavadrone -repotoken $COVERALLS_TOKEN + - /var/cache/drone/bin/goveralls -coverprofile=coverage.out -service=lavadrone -repotoken $COVERALLS_TOKEN From 4994b8e5092f4dec2caeb10b8219e3fe02c04784 Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Sun, 25 Jan 2015 22:24:57 +0100 Subject: [PATCH 11/26] Increased threads count --- .drone.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index ea97ab0..d355f13 100644 --- a/.drone.yml +++ b/.drone.yml @@ -9,6 +9,6 @@ script: - go get -t -v ./... - go get golang.org/x/tools/cmd/cover - go get github.com/mattn/goveralls - - go test -v github.com/lavab/api/setup - - go test -v -covermode=count -coverprofile=coverage.out github.com/lavab/api/routes + - GOMAXPROCS=4 go test -v github.com/lavab/api/setup + - GOMAXPROCS=4 go test -v -covermode=count -coverprofile=coverage.out github.com/lavab/api/routes - /var/cache/drone/bin/goveralls -coverprofile=coverage.out -service=lavadrone -repotoken $COVERALLS_TOKEN From 06475224ae81efccf871c29f633e048e8fadc1f5 Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Sun, 25 Jan 2015 23:08:55 +0100 Subject: [PATCH 12/26] Slack notifications --- .drone.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.drone.yml b/.drone.yml index d355f13..9368308 100644 --- a/.drone.yml +++ b/.drone.yml @@ -12,3 +12,11 @@ script: - GOMAXPROCS=4 go test -v github.com/lavab/api/setup - GOMAXPROCS=4 go test -v -covermode=count -coverprofile=coverage.out github.com/lavab/api/routes - /var/cache/drone/bin/goveralls -coverprofile=coverage.out -service=lavadrone -repotoken $COVERALLS_TOKEN +notify: + slack: + - webhook_url: $SLACK_URL + - channel: integration + - username: lavadrone + - on_started: true + - on_success: true + - on_failure: true \ No newline at end of file From f5cb00e5cc090a812a416a1f486ff0033fc24aca Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Sun, 25 Jan 2015 23:44:44 +0100 Subject: [PATCH 13/26] Slack notifications fix --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 9368308..36f7ee2 100644 --- a/.drone.yml +++ b/.drone.yml @@ -14,7 +14,7 @@ script: - /var/cache/drone/bin/goveralls -coverprofile=coverage.out -service=lavadrone -repotoken $COVERALLS_TOKEN notify: slack: - - webhook_url: $SLACK_URL + - webhook_url: $$SLACK_URL - channel: integration - username: lavadrone - on_started: true From 02bc994985488e5f2d9e73fb18a3c5076289a79e Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Sun, 25 Jan 2015 23:46:12 +0100 Subject: [PATCH 14/26] Slack notifications fix #2 --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index 36f7ee2..4c5eff2 100644 --- a/.drone.yml +++ b/.drone.yml @@ -15,7 +15,7 @@ script: notify: slack: - webhook_url: $$SLACK_URL - - channel: integration + - channel: $$SLACK_CHANNEL - username: lavadrone - on_started: true - on_success: true From 5b4a559b3b0cfa01043e2c5892035ffe31314c03 Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Mon, 26 Jan 2015 10:05:56 +0100 Subject: [PATCH 15/26] Deployment to lisa --- .drone.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.drone.yml b/.drone.yml index 4c5eff2..2da16fb 100644 --- a/.drone.yml +++ b/.drone.yml @@ -12,6 +12,9 @@ script: - GOMAXPROCS=4 go test -v github.com/lavab/api/setup - GOMAXPROCS=4 go test -v -covermode=count -coverprofile=coverage.out github.com/lavab/api/routes - /var/cache/drone/bin/goveralls -coverprofile=coverage.out -service=lavadrone -repotoken $COVERALLS_TOKEN + - "if [ \"$DRONE_BRANCH\" = \"master\" ]; then export CONTAINER_NAME=api-master; export CONTAINER_PORT=10000; fi" + - "if [ \"$DRONE_BRANCH\" = \"develop\" ]; then export CONTAINER_NAME=api-develop; export CONTAINER_PORT=10001; fi" + - "if [ -n $DRONE_BRANCH ]; then ssh -p 36412 root@lisa.lavaboom.io \"/opt/deploy/$CONTAINER_NAME.sh\"; fi" notify: slack: - webhook_url: $$SLACK_URL From ae4f2f4146f96bb27605643419458b361926e510 Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Mon, 26 Jan 2015 13:18:52 +0100 Subject: [PATCH 16/26] Disabled setup tests, improved build script --- .drone.yml | 6 +++++- setup/{setup_test.go => setup_test.go_} | 0 2 files changed, 5 insertions(+), 1 deletion(-) rename setup/{setup_test.go => setup_test.go_} (100%) diff --git a/.drone.yml b/.drone.yml index 2da16fb..d38e324 100644 --- a/.drone.yml +++ b/.drone.yml @@ -12,9 +12,13 @@ script: - GOMAXPROCS=4 go test -v github.com/lavab/api/setup - GOMAXPROCS=4 go test -v -covermode=count -coverprofile=coverage.out github.com/lavab/api/routes - /var/cache/drone/bin/goveralls -coverprofile=coverage.out -service=lavadrone -repotoken $COVERALLS_TOKEN + - curl https://get.docker.io/builds/Linux/x86_64/docker-latest -o /usr/local/bin/docker + - chmod +x /usr/local/bin/docker + - docker login -e circleci@lavaboom.io -u $DOCKER_USER -p $DOCKER_PASS https://registry.lavaboom.io - "if [ \"$DRONE_BRANCH\" = \"master\" ]; then export CONTAINER_NAME=api-master; export CONTAINER_PORT=10000; fi" - "if [ \"$DRONE_BRANCH\" = \"develop\" ]; then export CONTAINER_NAME=api-develop; export CONTAINER_PORT=10001; fi" - - "if [ -n $DRONE_BRANCH ]; then ssh -p 36412 root@lisa.lavaboom.io \"/opt/deploy/$CONTAINER_NAME.sh\"; fi" + - "if [ -n $CONTAINER_NAME ]; then docker build -t \"registry.lavaboom.io/lavaboom/$CONTAINER_NAME\" && docker push registry.lavaboom.io/lavaboom/$CONTAINER_NAME; fi" + - "if [ -n $CONTAINER_NAME ]; then ssh -p 36412 root@lisa.lavaboom.io \"/opt/deploy/$CONTAINER_NAME.sh\"; fi" notify: slack: - webhook_url: $$SLACK_URL diff --git a/setup/setup_test.go b/setup/setup_test.go_ similarity index 100% rename from setup/setup_test.go rename to setup/setup_test.go_ From 61177af07d38f4e5af8be019708caae343132eee Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Mon, 26 Jan 2015 14:07:03 +0100 Subject: [PATCH 17/26] Added sudo --- .drone.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.drone.yml b/.drone.yml index d38e324..01cfc66 100644 --- a/.drone.yml +++ b/.drone.yml @@ -12,12 +12,12 @@ script: - GOMAXPROCS=4 go test -v github.com/lavab/api/setup - GOMAXPROCS=4 go test -v -covermode=count -coverprofile=coverage.out github.com/lavab/api/routes - /var/cache/drone/bin/goveralls -coverprofile=coverage.out -service=lavadrone -repotoken $COVERALLS_TOKEN - - curl https://get.docker.io/builds/Linux/x86_64/docker-latest -o /usr/local/bin/docker - - chmod +x /usr/local/bin/docker - - docker login -e circleci@lavaboom.io -u $DOCKER_USER -p $DOCKER_PASS https://registry.lavaboom.io + - sudo curl https://get.docker.io/builds/Linux/x86_64/docker-latest -o /usr/local/bin/docker + - sudo chmod +x /usr/local/bin/docker + - sudo docker login -e circleci@lavaboom.io -u $DOCKER_USER -p $DOCKER_PASS https://registry.lavaboom.io - "if [ \"$DRONE_BRANCH\" = \"master\" ]; then export CONTAINER_NAME=api-master; export CONTAINER_PORT=10000; fi" - "if [ \"$DRONE_BRANCH\" = \"develop\" ]; then export CONTAINER_NAME=api-develop; export CONTAINER_PORT=10001; fi" - - "if [ -n $CONTAINER_NAME ]; then docker build -t \"registry.lavaboom.io/lavaboom/$CONTAINER_NAME\" && docker push registry.lavaboom.io/lavaboom/$CONTAINER_NAME; fi" + - "if [ -n $CONTAINER_NAME ]; then sudo docker build -t \"registry.lavaboom.io/lavaboom/$CONTAINER_NAME\" && docker push registry.lavaboom.io/lavaboom/$CONTAINER_NAME; fi" - "if [ -n $CONTAINER_NAME ]; then ssh -p 36412 root@lisa.lavaboom.io \"/opt/deploy/$CONTAINER_NAME.sh\"; fi" notify: slack: From 533226402cdf78efc33a7c60707f30b30c108859 Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Mon, 26 Jan 2015 14:18:14 +0100 Subject: [PATCH 18/26] Added DOCKER_PATH definition --- .drone.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.drone.yml b/.drone.yml index 01cfc66..a52d9f4 100644 --- a/.drone.yml +++ b/.drone.yml @@ -14,6 +14,7 @@ script: - /var/cache/drone/bin/goveralls -coverprofile=coverage.out -service=lavadrone -repotoken $COVERALLS_TOKEN - sudo curl https://get.docker.io/builds/Linux/x86_64/docker-latest -o /usr/local/bin/docker - sudo chmod +x /usr/local/bin/docker + - export DOCKER_HOST="unix:///var/run/docker.sock" - sudo docker login -e circleci@lavaboom.io -u $DOCKER_USER -p $DOCKER_PASS https://registry.lavaboom.io - "if [ \"$DRONE_BRANCH\" = \"master\" ]; then export CONTAINER_NAME=api-master; export CONTAINER_PORT=10000; fi" - "if [ \"$DRONE_BRANCH\" = \"develop\" ]; then export CONTAINER_NAME=api-develop; export CONTAINER_PORT=10001; fi" From ddd1c8684b2d0dc53745f38611f1315123cc1047 Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Mon, 26 Jan 2015 14:45:24 +0100 Subject: [PATCH 19/26] How do I docker? --- .drone.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.drone.yml b/.drone.yml index a52d9f4..1c2b752 100644 --- a/.drone.yml +++ b/.drone.yml @@ -15,10 +15,10 @@ script: - sudo curl https://get.docker.io/builds/Linux/x86_64/docker-latest -o /usr/local/bin/docker - sudo chmod +x /usr/local/bin/docker - export DOCKER_HOST="unix:///var/run/docker.sock" - - sudo docker login -e circleci@lavaboom.io -u $DOCKER_USER -p $DOCKER_PASS https://registry.lavaboom.io + - docker login -e circleci@lavaboom.io -u $DOCKER_USER -p $DOCKER_PASS https://registry.lavaboom.io - "if [ \"$DRONE_BRANCH\" = \"master\" ]; then export CONTAINER_NAME=api-master; export CONTAINER_PORT=10000; fi" - "if [ \"$DRONE_BRANCH\" = \"develop\" ]; then export CONTAINER_NAME=api-develop; export CONTAINER_PORT=10001; fi" - - "if [ -n $CONTAINER_NAME ]; then sudo docker build -t \"registry.lavaboom.io/lavaboom/$CONTAINER_NAME\" && docker push registry.lavaboom.io/lavaboom/$CONTAINER_NAME; fi" + - "if [ -n $CONTAINER_NAME ]; then docker build -t \"registry.lavaboom.io/lavaboom/$CONTAINER_NAME\" && docker push registry.lavaboom.io/lavaboom/$CONTAINER_NAME; fi" - "if [ -n $CONTAINER_NAME ]; then ssh -p 36412 root@lisa.lavaboom.io \"/opt/deploy/$CONTAINER_NAME.sh\"; fi" notify: slack: From 0110d0cd3fdd1c8fb7242cbfd70bd71ac1407db1 Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Mon, 26 Jan 2015 14:55:14 +0100 Subject: [PATCH 20/26] chmod docker endpoint --- .drone.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.drone.yml b/.drone.yml index 1c2b752..4b9fe3d 100644 --- a/.drone.yml +++ b/.drone.yml @@ -15,6 +15,7 @@ script: - sudo curl https://get.docker.io/builds/Linux/x86_64/docker-latest -o /usr/local/bin/docker - sudo chmod +x /usr/local/bin/docker - export DOCKER_HOST="unix:///var/run/docker.sock" + - sudo chmod 777 /var/run/docker.sock - docker login -e circleci@lavaboom.io -u $DOCKER_USER -p $DOCKER_PASS https://registry.lavaboom.io - "if [ \"$DRONE_BRANCH\" = \"master\" ]; then export CONTAINER_NAME=api-master; export CONTAINER_PORT=10000; fi" - "if [ \"$DRONE_BRANCH\" = \"develop\" ]; then export CONTAINER_NAME=api-develop; export CONTAINER_PORT=10001; fi" From 7dedbdd9a3992c036b5e868946342381f75ffb6e Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Mon, 26 Jan 2015 17:49:24 +0100 Subject: [PATCH 21/26] Added docker installation --- .drone.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.drone.yml b/.drone.yml index 4b9fe3d..c98ac4f 100644 --- a/.drone.yml +++ b/.drone.yml @@ -12,14 +12,15 @@ script: - GOMAXPROCS=4 go test -v github.com/lavab/api/setup - GOMAXPROCS=4 go test -v -covermode=count -coverprofile=coverage.out github.com/lavab/api/routes - /var/cache/drone/bin/goveralls -coverprofile=coverage.out -service=lavadrone -repotoken $COVERALLS_TOKEN - - sudo curl https://get.docker.io/builds/Linux/x86_64/docker-latest -o /usr/local/bin/docker - - sudo chmod +x /usr/local/bin/docker - - export DOCKER_HOST="unix:///var/run/docker.sock" - - sudo chmod 777 /var/run/docker.sock - - docker login -e circleci@lavaboom.io -u $DOCKER_USER -p $DOCKER_PASS https://registry.lavaboom.io + - sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 + - sudo sh -c \"echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list\" + - sudo apt-get update + - sudo apt-get install lxc-docker + - sudo docker login -e circleci@lavaboom.io -u $DOCKER_USER -p $DOCKER_PASS https://registry.lavaboom.io - "if [ \"$DRONE_BRANCH\" = \"master\" ]; then export CONTAINER_NAME=api-master; export CONTAINER_PORT=10000; fi" - - "if [ \"$DRONE_BRANCH\" = \"develop\" ]; then export CONTAINER_NAME=api-develop; export CONTAINER_PORT=10001; fi" - - "if [ -n $CONTAINER_NAME ]; then docker build -t \"registry.lavaboom.io/lavaboom/$CONTAINER_NAME\" && docker push registry.lavaboom.io/lavaboom/$CONTAINER_NAME; fi" + - "if [ \"$DRONE_BRANCH\" = \"staging\" ]; then export CONTAINER_NAME=api-staging; export CONTAINER_PORT=10001; fi" + - "if [ \"$DRONE_BRANCH\" = \"develop\" ]; then export CONTAINER_NAME=api-develop; export CONTAINER_PORT=10002; fi" + - "if [ -n $CONTAINER_NAME ]; then sudo docker build -t \"registry.lavaboom.io/lavaboom/$CONTAINER_NAME\" && docker push registry.lavaboom.io/lavaboom/$CONTAINER_NAME; fi" - "if [ -n $CONTAINER_NAME ]; then ssh -p 36412 root@lisa.lavaboom.io \"/opt/deploy/$CONTAINER_NAME.sh\"; fi" notify: slack: From decb82e18eeed844424c5adf67e3e69cbc03140c Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Mon, 26 Jan 2015 18:01:06 +0100 Subject: [PATCH 22/26] Removed character escaping --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index c98ac4f..fe68706 100644 --- a/.drone.yml +++ b/.drone.yml @@ -13,7 +13,7 @@ script: - GOMAXPROCS=4 go test -v -covermode=count -coverprofile=coverage.out github.com/lavab/api/routes - /var/cache/drone/bin/goveralls -coverprofile=coverage.out -service=lavadrone -repotoken $COVERALLS_TOKEN - sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 - - sudo sh -c \"echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list\" + - sudo sh -c "echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list" - sudo apt-get update - sudo apt-get install lxc-docker - sudo docker login -e circleci@lavaboom.io -u $DOCKER_USER -p $DOCKER_PASS https://registry.lavaboom.io From 7554f36dc9fc781f337a7742c037e6997b2a781c Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Mon, 26 Jan 2015 18:15:38 +0100 Subject: [PATCH 23/26] service pls start --- .drone.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.drone.yml b/.drone.yml index fe68706..33f6fe2 100644 --- a/.drone.yml +++ b/.drone.yml @@ -16,6 +16,7 @@ script: - sudo sh -c "echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list" - sudo apt-get update - sudo apt-get install lxc-docker + - sudo service docker start - sudo docker login -e circleci@lavaboom.io -u $DOCKER_USER -p $DOCKER_PASS https://registry.lavaboom.io - "if [ \"$DRONE_BRANCH\" = \"master\" ]; then export CONTAINER_NAME=api-master; export CONTAINER_PORT=10000; fi" - "if [ \"$DRONE_BRANCH\" = \"staging\" ]; then export CONTAINER_NAME=api-staging; export CONTAINER_PORT=10001; fi" From 8756eac4aaee9d2d5a249df409c8de2d858ba21e Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Mon, 26 Jan 2015 18:51:22 +0100 Subject: [PATCH 24/26] Updated build image --- .drone.yml | 15 +++++++-------- .drone/build.sh | 9 +++++++++ 2 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 .drone/build.sh diff --git a/.drone.yml b/.drone.yml index 33f6fe2..e0ec012 100644 --- a/.drone.yml +++ b/.drone.yml @@ -1,4 +1,4 @@ -image: go1.3 +image: registry.lavaboom.io/lavaboom/wrapper env: - GOPATH=/var/cache/drone services: @@ -6,22 +6,21 @@ services: - apcera/gnatsd - dockerfile/rethinkdb script: +# - sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 +# - sudo sh -c "echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list" +# - sudo apt-get update +# - sudo apt-get install lxc-docker +# - sudo service docker start - go get -t -v ./... - go get golang.org/x/tools/cmd/cover - go get github.com/mattn/goveralls - GOMAXPROCS=4 go test -v github.com/lavab/api/setup - GOMAXPROCS=4 go test -v -covermode=count -coverprofile=coverage.out github.com/lavab/api/routes - /var/cache/drone/bin/goveralls -coverprofile=coverage.out -service=lavadrone -repotoken $COVERALLS_TOKEN - - sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9 - - sudo sh -c "echo deb https://get.docker.com/ubuntu docker main > /etc/apt/sources.list.d/docker.list" - - sudo apt-get update - - sudo apt-get install lxc-docker - - sudo service docker start - - sudo docker login -e circleci@lavaboom.io -u $DOCKER_USER -p $DOCKER_PASS https://registry.lavaboom.io - "if [ \"$DRONE_BRANCH\" = \"master\" ]; then export CONTAINER_NAME=api-master; export CONTAINER_PORT=10000; fi" - "if [ \"$DRONE_BRANCH\" = \"staging\" ]; then export CONTAINER_NAME=api-staging; export CONTAINER_PORT=10001; fi" - "if [ \"$DRONE_BRANCH\" = \"develop\" ]; then export CONTAINER_NAME=api-develop; export CONTAINER_PORT=10002; fi" - - "if [ -n $CONTAINER_NAME ]; then sudo docker build -t \"registry.lavaboom.io/lavaboom/$CONTAINER_NAME\" && docker push registry.lavaboom.io/lavaboom/$CONTAINER_NAME; fi" + - "if [ -n $CONTAINER_NAME ]; then ./.drone/build.sh; fi" - "if [ -n $CONTAINER_NAME ]; then ssh -p 36412 root@lisa.lavaboom.io \"/opt/deploy/$CONTAINER_NAME.sh\"; fi" notify: slack: diff --git a/.drone/build.sh b/.drone/build.sh new file mode 100644 index 0000000..4b56b1d --- /dev/null +++ b/.drone/build.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -e + +wrapdocker & +sleep 5 + +docker login -e circleci@lavaboom.io -u $DOCKER_USER -p $DOCKER_PASS https://registry.lavaboom.io +docker build -t registry.lavaboom.io/lavaboom/$CONTAINER_NAME . +docker push registry.lavaboom.io/lavaboom/$CONTAINER_NAME \ No newline at end of file From cae97c045efd99d2c52d9c0c4cf5c4cbae973a5e Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Mon, 26 Jan 2015 19:35:55 +0100 Subject: [PATCH 25/26] chmod on build.sh --- .drone.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.drone.yml b/.drone.yml index e0ec012..1f5f329 100644 --- a/.drone.yml +++ b/.drone.yml @@ -20,7 +20,7 @@ script: - "if [ \"$DRONE_BRANCH\" = \"master\" ]; then export CONTAINER_NAME=api-master; export CONTAINER_PORT=10000; fi" - "if [ \"$DRONE_BRANCH\" = \"staging\" ]; then export CONTAINER_NAME=api-staging; export CONTAINER_PORT=10001; fi" - "if [ \"$DRONE_BRANCH\" = \"develop\" ]; then export CONTAINER_NAME=api-develop; export CONTAINER_PORT=10002; fi" - - "if [ -n $CONTAINER_NAME ]; then ./.drone/build.sh; fi" + - "if [ -n $CONTAINER_NAME ]; then chmod +x ./.drone/build.sh && ./.drone/build.sh; fi" - "if [ -n $CONTAINER_NAME ]; then ssh -p 36412 root@lisa.lavaboom.io \"/opt/deploy/$CONTAINER_NAME.sh\"; fi" notify: slack: From 676f940e4bb6075e3ec4071d12ab6ad59b9b4c41 Mon Sep 17 00:00:00 2001 From: Piotr Zduniak Date: Mon, 26 Jan 2015 19:47:10 +0100 Subject: [PATCH 26/26] what happened there --- .drone/build.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.drone/build.sh b/.drone/build.sh index 4b56b1d..3a50ee9 100644 --- a/.drone/build.sh +++ b/.drone/build.sh @@ -1,9 +1,9 @@ -#!/bin/bash -set -e - -wrapdocker & -sleep 5 - -docker login -e circleci@lavaboom.io -u $DOCKER_USER -p $DOCKER_PASS https://registry.lavaboom.io -docker build -t registry.lavaboom.io/lavaboom/$CONTAINER_NAME . +#!/bin/bash +set -e + +wrapdocker & +sleep 5 + +docker login -e circleci@lavaboom.io -u $DOCKER_USER -p $DOCKER_PASS https://registry.lavaboom.io +docker build -t registry.lavaboom.io/lavaboom/$CONTAINER_NAME . docker push registry.lavaboom.io/lavaboom/$CONTAINER_NAME \ No newline at end of file