Skip to content

Commit

Permalink
Add support for building release-sdk.zip files on travis (#9240)
Browse files Browse the repository at this point in the history
* Add support for building release-sdk.zip files on travis

* Update caching

* Build SDK for master, too

* Adjust framework version to include a release hash for master builds
  • Loading branch information
cajus authored and level420 committed Dec 15, 2016
1 parent f74179e commit 042bc18
Show file tree
Hide file tree
Showing 3 changed files with 364 additions and 47 deletions.
100 changes: 57 additions & 43 deletions .travis.yml
Expand Up @@ -4,61 +4,75 @@ php: 5.6
addons:
apt:
packages:
- python-sphinx
- python-sphinx
env:
- QXBROWSER=Firefox QXVERSION=latest
- QXBROWSER=Firefox QXVERSION=esr-latest
- QXBROWSER=Firefox QXVERSION=beta-latest
- QXBROWSER=Chrome_travis_ci QXVERSION=stable
- QXBROWSER=Chrome_travis_ci QXVERSION=beta
- QXBROWSER=Chrome_travis_ci QXVERSION=unstable
- secure: "vW8wdbY/DmRITaFkQix8PUuE3jiwy2Yj0nn+k+yNqcwPde19ObQBq0rHJEiO5AJOBuNiWaie2n8sQQ6ceK72pU1IbIntPsztY/EFKP6x009wjmiLoifsVEGNP1kxLgFOnvCmlGjTIyGsqse5UsVt8HZs2jHK8xkkedTehuDNxtI="

- QXBROWSER=Firefox QXVERSION=latest
- QXBROWSER=Firefox QXVERSION=esr-latest
- QXBROWSER=Firefox QXVERSION=beta-latest
- QXBROWSER=Chrome_travis_ci QXVERSION=stable
- QXBROWSER=Chrome_travis_ci QXVERSION=beta
- QXBROWSER=Chrome_travis_ci QXVERSION=unstable
- secure: vW8wdbY/DmRITaFkQix8PUuE3jiwy2Yj0nn+k+yNqcwPde19ObQBq0rHJEiO5AJOBuNiWaie2n8sQQ6ceK72pU1IbIntPsztY/EFKP6x009wjmiLoifsVEGNP1kxLgFOnvCmlGjTIyGsqse5UsVt8HZs2jHK8xkkedTehuDNxtI=
cache:
directories:
- /tmp/qx5.1
- "/tmp/qx5.1"
- "`pwd`/texlive"
before_install:
- gem install sass
- gem install sass -v 3.4.20
- curl -L https://github.com/raphink/travis-texlive/releases/download/2015-07-14_05/texlive.tar.xz | tar xJC `pwd`
install:
- ./.travis/browser-setup.sh
- export CHROME_BIN=`pwd`/chrome/google-chrome
- export PATH=`pwd`/firefox:$PATH
- cd framework
- npm install
- if [ "$QXBROWSER" != "" ]; then ./generate.py -sI test-source; fi
- "./.travis/browser-setup.sh"
- export CHROME_BIN=`pwd`/chrome/google-chrome
- export PATH=`pwd`/firefox:`pwd`/texlive/bin/x86_64-linux:$PATH
- npm install
- grunt setup
- cd framework
- if [ "$QXBROWSER" != "" ]; then ./generate.py -sI test-source; fi
before_script:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
- "php -S 0.0.0.0:31323 &> /dev/null &"
- sleep 3
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
- php -S 0.0.0.0:31323 &> /dev/null &
- sleep 3
script:
- ../.travis/test-framework.sh
- "../.travis/test-framework.sh"
after_script:
- "pkill -f 'php -S 0.0.0.0:31323' &> /dev/null"
- pkill -f 'php -S 0.0.0.0:31323' &> /dev/null
after_success:
- cd $TRAVIS_BUILD_DIR
- |
declare -r SSH_FILE="$(mktemp -u $HOME/.ssh/XXXXX)"
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- cd $TRAVIS_BUILD_DIR
- |
declare -r SSH_FILE="$(mktemp -u $HOME/.ssh/XXXXX)"
# Decrypt the file containing the private key
# (Note: this is the same as what is generated by the Travis CLI at step 2.5)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
openssl aes-256-cbc \
-K $encrypted_774cfba6afab_key \
-iv $encrypted_774cfba6afab_iv \
-in ".travis/github_deploy_key.enc" \
-out "$SSH_FILE" -d
# Decrypt the file containing the private key
# (Note: this is the same as what is generated by the Travis CLI at step 2.5)
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
openssl aes-256-cbc \
-K $encrypted_774cfba6afab_key \
-iv $encrypted_774cfba6afab_iv \
-in ".travis/github_deploy_key.enc" \
-out "$SSH_FILE" -d
# Enable SSH authentication
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
chmod 600 "$SSH_FILE" \
&& printf "%s\n" \
"Host github.com" \
" IdentityFile $SSH_FILE" \
" LogLevel ERROR" >> ~/.ssh/config
# Enable SSH authentication
- ./.travis/build-site.sh && ./.travis/deploy.sh
chmod 600 "$SSH_FILE" \
&& printf "%s\n" \
"Host github.com" \
" IdentityFile $SSH_FILE" \
" LogLevel ERROR" >> ~/.ssh/config
- "./.travis/make-release-sdk.sh && ./.travis/build-site.sh && ./.travis/deploy.sh"
before_deploy:
- export RELEASE_PKG_FILE=$(ls dist/*.zip)
- echo "deploying $RELEASE_PKG_FILE to GitHub releases"
deploy:
provider: releases
api_key:
secure: ekeMQx+Mq7ydMyR2YPmhhUP7Ai8qlfi5BJ1q5E0kSKb4F73OUzA0cyFlTpdcI+zbcYWHpxAHbZXHz7VtpUN7lRcCMW3WGdpW5FjZAUKxR253Nysz39rdGS0CC4G3RKRyLmaOwqVldRKruY1rea3a92zPud2i7NrjgSN8riDZGm9SHbnv8xxyWfa+aC1FyUfi11kJquwjhlKHFvQ4Mt0w1KUP7kk+e1Nt2ZPDI5XMFq94bIx412dBkKrI5UAEQcVSmhZ/uCzJVZ6kCd266z0uhbJ4MVagiB+M6Xkrs1//yeEL87qj0T9viFRUxZVlh1ORs+ltRsnXIVCzpP6ul/rrhD2y8mz4vm5EQBgFVNuBWLufShONR0iOSLv2/Up4D2BVgqy5e4oxG6pEO9tzOgXnSm/SdByL+a4YxQiqZ3MuWxbGCuHk/5Lmb5GH7qJInyoJRw4nQXbeIM/s62ReByjc6BHmst3gvtjhvwh/x/q3eaGxAkuSc+AHA7x3S0FPguTQxlfYA3iYjCVKzHLFQiROpshH0IxxXkF7G3qrdkdRLCbMTxdURFOZCpVetCUELaewzD8t2oJaGywyJF3Fm/izQEgKg03wjtqTfC/+DvE/Eno0lyw0pdtccSWDhRnIynbVI/1NBMFbPxCiTktAD5hCLIM4UaDnLth+ikxNWD4su/Y=
file_glob: true
file: "${RELEASE_PKG_FILE}"
skip_cleanup: true
on:
repo: qooxdoo/qooxdoo
tags: true
17 changes: 13 additions & 4 deletions .travis/build-site.sh
Expand Up @@ -9,12 +9,14 @@ TARGET="$PWD/build"
MASTER="master"

if [ "$GH_USER_EMAIL" = "" ]; then
echo "Skipping site generation for regular build."
echo "Non QX build: skipping site generation"
exit 1
fi

if [ "$TRAVIS_BRANCH" != "$MASTER" -a "$TRAVIS_TAG" = "" ]; then
echo "Skipping site generation for $TRAVIS_BRANCH."
if [ "$TRAVIS_BRANCH" = "$MASTER" -o "$TRAVIS_TAG" != "" ]; then
echo "Building site - please stand by"
else
echo "No master branch or tag: skipping site generation for $TRAVIS_BRANCH"
exit 2
fi

Expand Down Expand Up @@ -105,11 +107,18 @@ function build_manual {
(
cd documentation/manual
make html && cp -r build/html/* "$TARGET"
#make latexpdf && cp build/latex/qooxdoo.pdf "$TARGET"
make latexpdf && cp build/latex/qooxdoo.pdf "$TARGET"
#make epub && cp build/epub/qooxdoo.epub "$TARGET"
)
}

function build_sdk_zip {
if [ "$TRAVIS_BRANCH" = "$MASTER" -a "$TRAVIS_TAG" = "" ]; then
echo "Copying master sdk archive..."
cp $(git rev-parse --show-toplevel)/dist/temp/sdk/*zip "$TARGET/master.zip"
fi
}

npm install
grunt setup

Expand Down

0 comments on commit 042bc18

Please sign in to comment.