From 6c007473905ed6e1c7e964f3a9ff44b2162d2e70 Mon Sep 17 00:00:00 2001 From: Yan Date: Thu, 27 Sep 2018 08:54:56 +0800 Subject: [PATCH] Enable travis to update logs to GSR (#5949) 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 --- .travis.yml | 87 +++++++++++++++++++--------------------- gskey.sh.enc | Bin 0 -> 1904 bytes tests/travis/api_run.sh | 39 +++++++++++++++++- 3 files changed, 79 insertions(+), 47 deletions(-) create mode 100644 gskey.sh.enc diff --git a/.travis.yml b/.travis.yml index 1ea136944..f29ae779d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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 \ No newline at end of file +- 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 diff --git a/gskey.sh.enc b/gskey.sh.enc new file mode 100644 index 0000000000000000000000000000000000000000..3c9d11461be8df8c3a806d261ce87c8fda87ea20 GIT binary patch literal 1904 zcmV-$2aov8p;`AzK?-1;e_W5r5Q}K{_QK?iCBvtN!aPnsu>&r(c*SpbV?_a#fol1J zegq`RCJuu-VHhnM$MKl%0g(@)P-(arjJiHbLO_yZ_?%!gp8yF#J5>OtkK>(U^>Vf- zOXzqyXR?SA9Qw$CeMI`W0NgU+LFQ41Z#R}_?Jy5_N#$fMPJv_kMrJnCp!EbvOBtV2ihNtUEm7&_`UM z%QYUVo;%3;K%bRJc>JC&l-)P*R$yL#5p>~WgiMcyQJMuUUso&Olc?ObNzDG^4S_8p{Xg@naMYh9i2%zuRrip%8v z%F(Wq3ZM}*=~mYg@DSy;&Ekf5!3Am99GpZt`p#WMvoeAbd?*csvgnwsA)(s7|2UG$ZI9CLnnb*KoEw*kdNC|$0S{|eU#{Q&!5#`d2a>u01 zF-h;WHO2%DwOYc&^x(F7!WSo-YKSy34JGR3*w6}Hvs78zZ^4&!vV)f z@J|1M1WEJ7_Ps3%O}8#KMJx3n;i}Q=&94_AH`BU-ojnS6OQ;kcbce)>4poLvPv74? zy79DkdmV=kynU`=oS=YHWR3VOEuosjPe_On0EApQZh3M5~?Lr zL+?#cyRlwd|4=Ti)+bxuDNJLMtv!ANQd)tddt6WR>^!@a=m_XfBS%>BStY>l926_=Hl#(>AS zo86&S&;qOrco80_I#)j5|*BWKBx~_HM2F73N?bdjaR8!@d-vNF&R&^`7Xb{bOspq3KltH0cNP*^@+Os;A<&>ALu!1o)0W-L)8^t$IC*(0Ovt{+y-FAGe zp^uB*a1sskP9@^wCMRmWQkO}8LfoTNW?D7HH1DRnB2~M5>(U*FF~eqX>ir{DydWO+ z{jWqnS3CM2+XU|-iEi!byP^wDO`&lLv~jldz{2QKLNhFfvU&DX|J-_r?ucWwjZ&AU z>T@w`KyyeFgIy)=KqL$dLVJUdmG)f`GJ7-aH4rXXsrM>4Z2C{=n(g-dtKix`TH`{N z)Nb)li-)G4O-vS)+K}B~O6y`%PP6y}tKSE%Xi~5;xDxuxux6Hq#;fP2lUDiW_Ipf7 zg;ZXZQ3!~1JB}eDg*)y>_@r7r&odS$T%Br`MO(clw_XL;947*F5qaU2U$TgVRa>Cd z6k-goK$1mpnaj#vm8-g!#9&9?C=}WoA$Iy|+ZymjPrBzyzUQ?&v~ZjF81c%_?Pib5 z!%U++hu6DR4^jGBGeQ0*aU2956po94fs@bsrqv%5v)c|~6SRgx~!~_lU4Ooo2!VYJ)e`Zc()*m%73z%TLl<1yOw=!iv%=py4%B_0Yw| zH39FzXNLvmvMYS{|k34Lr3nt2hRw|<25Ba3Sa z$Aq*mH90I#CbTM-+064@yCEYG1@bU`yKihaROeneg=E1wu)=iEj&7cO0-5s`NG6l% zMSuXgQ6Pj03sD_qMCXf}1IroGB9p8)pXMc9P@$5om`i+?=F+_T;D{_5`SNOiyW^=_ zqTf$WgOwisdL-|lqj%&L$*Biqs&a^H9Hg!%rZrtgqlZ;GT;%ZIZ!tVBtMq9%DWY7m zH`1(y48gvd&n!JYNih8-&?l|up78N$@f#=WeHK%nb0iQ&b$_LuS(L-D q2JJ2*#`eJgY0??#nwP-%fq $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 @@ -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 +