From b47693647779eda054ad7299f3a35973d16a049b Mon Sep 17 00:00:00 2001 From: Johannes Wachter Date: Sat, 24 Sep 2016 10:26:40 +0200 Subject: [PATCH 1/2] added build script --- .gitignore | 4 ++++ .travis.yml | 9 +++++++++ .travis/secrets.tar.enc | Bin 0 -> 5136 bytes DEPLOY.md | 9 +++++++++ bin/deploy.sh | 37 +++++++++++++++++++++++++++++++++++++ bin/parse-manifest.php | 30 ++++++++++++++++++++++++++++++ 6 files changed, 89 insertions(+) create mode 100644 .travis/secrets.tar.enc create mode 100644 DEPLOY.md create mode 100644 bin/deploy.sh create mode 100644 bin/parse-manifest.php diff --git a/.gitignore b/.gitignore index ba18a1a..7bb6936 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,7 @@ /puli.json /box.json /.puli +/.idea +*.iml +.travis/build-key.pem +.travis/secrets.tar diff --git a/.travis.yml b/.travis.yml index 3372d19..a5f4e4e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,8 @@ matrix: - php: 5.4 - php: 5.5 - php: 5.6 + env: + - EXECUTE_DEPLOYMENT=true - php: hhvm - php: nightly - php: 7.0 @@ -34,6 +36,13 @@ script: if [[ $COVERAGE = yes ]]; then vendor/bin/phpunit --verbose --coverage-c after_script: if [[ $COVERAGE = yes ]]; then wget https://scrutinizer-ci.com/ocular.phar && php ocular.phar code-coverage:upload --format=php-clover coverage.clover; fi +after_success: + - openssl aes-256-cbc -K $encrypted_7a05c4e35c71_key -iv $encrypted_7a05c4e35c71_iv + -in .travis/secrets.tar.enc -out .travis/secrets.tar -d + - if [[ $EXECUTE_DEPLOYMENT == 'true' && ($TRAVIS_BRANCH == 'master' || $TRAVIS_TAG != '') && $TRAVIS_PULL_REQUEST == 'false' ]]; then composer install --no-dev ; fi + - if [[ $EXECUTE_DEPLOYMENT == 'true' && ($TRAVIS_BRANCH == 'master' || $TRAVIS_TAG != '') && $TRAVIS_PULL_REQUEST == 'false' ]]; then ./bin/deploy.sh ; fi + - if [[ $EXECUTE_DEPLOYMENT == 'true' && ($TRAVIS_BRANCH == 'master' || $TRAVIS_TAG != '') && $TRAVIS_PULL_REQUEST == 'false' ]]; then ./puli.phar ; fi + notifications: webhooks: urls: ['https://webhooks.gitter.im/e/9ccc2378e6c0de6480f8'] diff --git a/.travis/secrets.tar.enc b/.travis/secrets.tar.enc new file mode 100644 index 0000000000000000000000000000000000000000..6b03ade531743d6c7faa0ee630f10074651499d4 GIT binary patch literal 5136 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 v;P zbS~HrkF#tL{D7N`*gErts}o!s#A&=@+iSqs(;1=>d>JedEQXbl+CfQ)z#8Ftg!c*^ znD|{1auXGe9SROKFB>Sr(?nU@*t&Ei4~dtyRgT#63=~s0Wvn9M1^x@@PfA*0LkEh< z#4)@-ED}E)oaL)8_7QZKYHEvX)<}NOEf|21=UE?th8pqz5As4qcThP48_f(&(_9Km z6NOp^4z1SqBF+wW_B=D=1u8t&wEoT$^#^K^bBK1#U!*8*vPkxE(s5#wPu%U4>beMPU-(q{0tR>wFK zBVWOCtW%NmJ;#+ww|;sIS>xZcXgsNn z)E>(F{%cF9zm4L51_G)EY8@69IAP;YCOto)+&oLHpB;aAUhB=;7DEG9#}L@G6{DAXJYY|7SyGk1YzD5Hy}T*xS^ zVGEJ{M@vSfxanEirG^;wj_TiDxRK{;fpRUVh0RX9%QcdHjjtxPx7cxmjq5sR&BYf(JSZfqgbV-)WuU$0pf<=mQ0GImYeaf?3Fnag&gou>w@ zF?fQpA0T~rNg=#m+K95f|y?J9j3zFTD>Q*Sm_y48L|rOfP45p#7)eBHc^`5 zOqN~_-mwN4#4}zyrb2;~j}?TPonWcwpA>xgQqAQQZv7p4?T*IWcG_qdjzyW)mId*Fd;oHf&p( z?@+w^nLdVJ;O6G{G@U5>k-CZ1Z?M+?yk}!^r>W7B=L2}5ae~b_ zcK_b(nO%tAxW>L$PpA`puc?)&hL&HJmz" +``` + +* store deploy key in github + +cp $HOME/.ssh/_rsa .travis/build-key.pem diff --git a/bin/deploy.sh b/bin/deploy.sh new file mode 100644 index 0000000..2c8c5d1 --- /dev/null +++ b/bin/deploy.sh @@ -0,0 +1,37 @@ +#!/bin/bash +# Unpack secrets; -C ensures they unpack *in* the .travis directory +tar xvf .travis/secrets.tar -C .travis + +# Setup SSH agent: +eval "$(ssh-agent -s)" #start the ssh agent +chmod 600 .travis/build-key.pem +ssh-add .travis/build-key.pem + +# Setup git defaults: +# TODO set username and email +git config --global user.email "johannes.wachter@outlook.com" +git config --global user.name "Johannes Wachter" + +# Add SSH-based remote to GitHub repo: +# TODO remote +git remote add deploy git@github.com:wachterjohannes/cli.git +git fetch deploy + +# Get box and build PHAR +wget https://box-project.github.io/box2/manifest.json +BOX_URL=$(php bin/parse-manifest.php manifest.json) +rm manifest.json +wget -O box.phar ${BOX_URL} +chmod 755 box.phar +./box.phar build -vv + +# Checkout gh-pages and add PHAR file and version: +git checkout -b gh-pages deploy/gh-pages +git pull deploy gh-pages +mv build/* ./puli.phar +sha1sum puli.phar > puli.phar.version +git add puli.phar puli.phar.version + +# Commit and push: +git commit -m 'Rebuilt phar' +git push deploy gh-pages:gh-pages diff --git a/bin/parse-manifest.php b/bin/parse-manifest.php new file mode 100644 index 0000000..2503735 --- /dev/null +++ b/bin/parse-manifest.php @@ -0,0 +1,30 @@ +=')) { + echo $file['url']; + exit(0); + } +} + +echo $fallbackUrl; +exit(0); From 1a4c65445ffa7d2dcfe4c3cd74f31529b41dc333 Mon Sep 17 00:00:00 2001 From: Johannes Wachter Date: Sat, 24 Sep 2016 16:58:49 +0200 Subject: [PATCH 2/2] added deploy section to .travis.yml --- .travis.yml | 14 ++++++++++---- bin/deploy.sh | 36 +++++++++++++++++++----------------- 2 files changed, 29 insertions(+), 21 deletions(-) diff --git a/.travis.yml b/.travis.yml index a5f4e4e..9eff210 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,8 @@ language: php - sudo: false - cache: directories: - - $HOME/.composer/cache/files - + - $HOME/.composer/cache/files matrix: include: - php: 5.3 @@ -49,3 +46,12 @@ notifications: on_success: change on_failure: always on_start: never + +deploy: + - provider: releases + skip_cleanup: true + api_key: + secure: XufYEOR4sihf4gJ9zTizrupydaQnkCVZLDbdXRAmfVNgDQNkSI2a8aKyGxxH2YTmJn65DHiFAuNMv5LIwG1e1XuiuW4ZFsEOj7o+qV5NZCzkTiYY4qYVlsut2lk8Y6dOaJl9wjvBKxK/ELbs66M4NS/3qSluaGAL1K3DtuBzF0MFLT0S4HhwoYkkJaTx3XZcCNSJA7kxT/yhSpMOhlmVXw89yJbxHiVya/YVLBHGSFpN8WpHSYxZuOnWw4OZrvS/Le+v9cvxqK1JLzV6tKe6X3DtBRzyVoO+c0CXm7Q0nn+HYtuZHnn2uOsLb68kRo8R2jjRImF/q6xdhoUHmrKFa8GgaVZkYHoCYVIbX0e2DzLvgo5DXEs1H8sNKFBjI0zRj8B9CDV6Blqap3a4d6JBsmmTAt4sFENWU4Gekv/vfB9PEIjmbLl+5/YHQcHtzU+kMnAGzpJ2d+M9BOjiUPdEHSek7vaEdE5ySAMM/0PZo2y9ZP1Go7yzHybip3WdLO6G8Q0HOoYUL0orJ9rZOT+NYBIgWXHymyFM2TJvoGlgsQRzagVseyH8qbmGo1FuMrTGePYjCo00xT3S2RgW4nXMPi0Qx6dsTUqGZDr8v1Qz2gKJlgP/a7Wpd+P1km+ibkVyqb94CgCx3Ryxf7YBplUuPT9Th+f/AiGOFh9OLA729M4= + file: puli.phar + on: + tags: true diff --git a/bin/deploy.sh b/bin/deploy.sh index 2c8c5d1..eb6d8b9 100644 --- a/bin/deploy.sh +++ b/bin/deploy.sh @@ -7,16 +7,6 @@ eval "$(ssh-agent -s)" #start the ssh agent chmod 600 .travis/build-key.pem ssh-add .travis/build-key.pem -# Setup git defaults: -# TODO set username and email -git config --global user.email "johannes.wachter@outlook.com" -git config --global user.name "Johannes Wachter" - -# Add SSH-based remote to GitHub repo: -# TODO remote -git remote add deploy git@github.com:wachterjohannes/cli.git -git fetch deploy - # Get box and build PHAR wget https://box-project.github.io/box2/manifest.json BOX_URL=$(php bin/parse-manifest.php manifest.json) @@ -25,13 +15,25 @@ wget -O box.phar ${BOX_URL} chmod 755 box.phar ./box.phar build -vv +# TODO if build with gh-pages + +# Setup git defaults: +# TODO set username and email +# git config --global user.email "johannes.wachter@outlook.com" +# git config --global user.name "Johannes Wachter" + +# Add SSH-based remote to GitHub repo: +# TODO remote +# git remote add deploy git@github.com:wachterjohannes/cli.git +# git fetch deploy + # Checkout gh-pages and add PHAR file and version: -git checkout -b gh-pages deploy/gh-pages -git pull deploy gh-pages -mv build/* ./puli.phar -sha1sum puli.phar > puli.phar.version -git add puli.phar puli.phar.version +# git checkout -b gh-pages deploy/gh-pages +# git pull deploy gh-pages +# mv build/* ./puli.phar +# sha1sum puli.phar > puli.phar.version +# git add puli.phar puli.phar.version # Commit and push: -git commit -m 'Rebuilt phar' -git push deploy gh-pages:gh-pages +# git commit -m 'Rebuilt phar' +# git push deploy gh-pages:gh-pages