Skip to content

Commit

Permalink
Enable travis to update logs to GSR
Browse files Browse the repository at this point in the history
1, add encrypt file to store gsutil keys.
2, add function to call gsutil to update logs into harbor log bucket.

Signed-off-by: wangyan <wy65701436@gmail.com>
  • Loading branch information
wy65701436 committed Sep 26, 2018
1 parent e3b061c commit eb7c472
Show file tree
Hide file tree
Showing 3 changed files with 79 additions and 47 deletions.
87 changes: 41 additions & 46 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,72 +1,67 @@
sudo: true

language: go

go:
- 1.9.2

go_import_path: github.com/goharbor/harbor

services:
- docker

dist: trusty

matrix:
include:
- go: "1.9.2"
- go: 1.9.2
env:
- UTTEST=true
- go: "1.9.2"
- go: 1.9.2
env:
- APITEST_DB=true
- go: "1.9.2"
- go: 1.9.2
env:
- APITEST_LDAP=true
- go: "1.9.2"
- go: 1.9.2
env:
- OFFLINE=true
env:
global:
- POSTGRESQL_HOST: localhost
- POSTGRESQL_PORT: 5432
- POSTGRESQL_USR: postgres
- POSTGRESQL_PWD: root123
- POSTGRESQL_DATABASE: registry
- ADMINSERVER_URL: http://127.0.0.1:8888
- DOCKER_COMPOSE_VERSION: 1.22.0
- HARBOR_ADMIN: admin
- HARBOR_ADMIN_PASSWD: Harbor12345
- CORE_SECRET: tempString
- KEY_PATH: /data/secretkey
- REDIS_HOST: localhost
- REG_VERSION: v2.6.2
- UI_BUILDER_VERSION: 1.6.0

addons:
- POSTGRESQL_HOST: localhost
- POSTGRESQL_PORT: 5432
- POSTGRESQL_USR: postgres
- POSTGRESQL_PWD: root123
- POSTGRESQL_DATABASE: registry
- ADMINSERVER_URL: http://127.0.0.1:8888
- DOCKER_COMPOSE_VERSION: 1.22.0
- HARBOR_ADMIN: admin
- HARBOR_ADMIN_PASSWD: Harbor12345
- CORE_SECRET: tempString
- KEY_PATH: "/data/secretkey"
- REDIS_HOST: localhost
- REG_VERSION: v2.6.2
- UI_BUILDER_VERSION: 1.6.0
addons:
apt:
sources:
- google-chrome
- google-chrome
packages:
- google-chrome-stable
- google-chrome-beta

- google-chrome-stable
- google-chrome-beta
before_install:
- curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
- chmod +x docker-compose
- sudo mv docker-compose /usr/local/bin
- IP=`ip addr s eth0 |grep "inet "|awk '{print $2}' |awk -F "/" '{print $1}'`
- sudo sed -i '$a DOCKER_OPTS=\"--insecure-registry '$IP':5000\"' /etc/default/docker
- export IP=$IP
- sudo service docker restart

- openssl aes-256-cbc -K $encrypted_ed2284a9ecc3_key -iv $encrypted_ed2284a9ecc3_iv
-in gskey.sh.enc -out ./gskey.sh -d
- curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname
-s`-`uname -m` > docker-compose
- chmod +x docker-compose
- sudo mv docker-compose /usr/local/bin
- IP=`ip addr s eth0 |grep "inet "|awk '{print $2}' |awk -F "/" '{print $1}'`
- sudo sed -i '$a DOCKER_OPTS=\"--insecure-registry '$IP':5000\"' /etc/default/docker
- export IP=$IP
- sudo service docker restart
install:
- if [ "$UTTEST" == true ]; then bash ./tests/travis/ut_install.sh ; fi
- if [ "$APITEST_DB" == true ]; then bash ./tests/travis/api_common_install.sh $IP DB; fi
- if [ "$APITEST_LDAP" == true ]; then bash ./tests/travis/api_common_install.sh $IP LDAP; fi

- if [ "$UTTEST" == true ]; then bash ./tests/travis/ut_install.sh ; fi
- if [ "$APITEST_DB" == true ]; then bash ./tests/travis/api_common_install.sh $IP
DB; fi
- if [ "$APITEST_LDAP" == true ]; then bash ./tests/travis/api_common_install.sh $IP
LDAP; fi
script:
- if [ "$UTTEST" == true ]; then bash ./tests/travis/ut_run.sh $IP; fi
- if [ "$APITEST_DB" == true ]; then bash ./tests/travis/api_run.sh DB $IP; fi
- if [ "$APITEST_LDAP" == true ]; then bash ./tests/travis/api_run.sh LDAP $IP; fi
- if [ "$OFFLINE" == true ]; then bash ./tests/travis/distro_installer.sh; fi
- if [ "$UTTEST" == true ]; then bash ./tests/travis/ut_run.sh $IP; fi
- if [ "$APITEST_DB" == true ]; then bash ./tests/travis/api_run.sh DB $IP; fi
- if [ "$APITEST_LDAP" == true ]; then bash ./tests/travis/api_run.sh LDAP $IP; fi
- if [ "$OFFLINE" == true ]; then bash ./tests/travis/distro_installer.sh; fi
Binary file added gskey.sh.enc
Binary file not shown.
39 changes: 38 additions & 1 deletion tests/travis/api_run.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,29 @@
#!/bin/bash

set -e
source gskey.sh

sudo gsutil version -l

harbor_logs_bucket="harbor-ci-logs"
# GC credentials
keyfile="/home/travis/harbor-ci-logs.key"
botofile="/home/travis/.boto"
echo -en $GS_PRIVATE_KEY > $keyfile
sudo chmod 400 $keyfile
echo "[Credentials]" >> $botofile
echo "gs_service_key_file = $keyfile" >> $botofile
echo "gs_service_client_id = $GS_CLIENT_EMAIL" >> $botofile
echo "[GSUtil]" >> $botofile
echo "content_language = en" >> $botofile
echo "default_project_id = $GS_PROJECT_ID" >> $botofile

# GS util
function uploader {
sudo gsutil cp $1 gs://$2/$1
sudo gsutil -D setacl public-read gs://$2/$1 &> /dev/null
}

set +e

docker ps
# run db auth api cases
Expand All @@ -11,3 +34,17 @@ fi
if [ "$1" = 'LDAP' ]; then
pybot -v ip:$2 -v HARBOR_PASSWORD:Harbor12345 /home/travis/gopath/src/github.com/goharbor/harbor/tests/robot-cases/Group0-BAT/API_LDAP.robot
fi

## --------------------------------------------- Upload Harbor CI Logs -------------------------------------------
outfile="integration_logs_$TRAVIS_BUILD_NUMBER_$TRAVIS_COMMIT.tar.gz"
sudo tar -zcvf $outfile output.xml log.html /var/log/harbor/*
if [ -f "$outfile" ]; then
uploader $outfile $harbor_logs_bucket
echo "----------------------------------------------"
echo "Download test logs:"
echo "https://storage.googleapis.com/harbor-ci-logs/$outfile"
echo "----------------------------------------------"
else
echo "No log output file to upload"
fi

0 comments on commit eb7c472

Please sign in to comment.