From 32da3163e830855050b4450ebd04bb7d6e0e065f Mon Sep 17 00:00:00 2001 From: Stefan Breunig Date: Thu, 7 Mar 2013 08:39:23 +0100 Subject: [PATCH] update nightly builder and add app engine config and docs --- tools/README.md | 56 +++++++++++++++++++ tools/appengine/war/WEB-INF/appengine-web.xml | 12 ++++ tools/appengine/war/WEB-INF/web.xml | 2 + tools/iitc-nightly.sh | 29 +++++++--- 4 files changed, 92 insertions(+), 7 deletions(-) create mode 100644 tools/README.md create mode 100644 tools/appengine/war/WEB-INF/appengine-web.xml create mode 100644 tools/appengine/war/WEB-INF/web.xml diff --git a/tools/README.md b/tools/README.md new file mode 100644 index 00000000..0e05e9d7 --- /dev/null +++ b/tools/README.md @@ -0,0 +1,56 @@ +These files are stored here as reference and backup for me. You likely +won’t need them, as the script runs on one of my servers and handles all +the building for you. + +Still, here’s how it goes down: +- `iitc-nightly.sh` is run by a cronjob. Config: `50 1 * * * /home/pi/iitc-nightly.sh > /dev/null` +- the ZSH script grabs the latest IITC tarball and extracts it +- it gets the latest revision sha1 +- builds +- uploads to Dropbox using [Dropbox-Up](https://github.com/andreafabrizi/Dropbox-Uploader) +- wild copy magic to get the correct folder structure for app engine +- uploading to app engine using Google’s appcfg.sh script (available [in the Java AppEngine SDK](https://developers.google.com/appengine/downloads)) + + +You don’t need the whole app engine folder, only some files *and folders*. +The directory structure is shown below where `./appenginesmall/bin/appcfg.sh update war` +will update all files in `war/` without `war/WEB-INF`. + +``` +~/iitc-appengine $ tree +. +├── appenginesmall +│   ├── bin +│   │   └── appcfg.sh +│   ├── config +│   │   └── sdk +│   │   └── logging.properties +│   ├── docs +│   │   └── appengine-web.xsd +│   └── lib +│   ├── appengine-tools-api.jar +│   ├── impl +│   │   └── agent +│   ├── opt +│   │   └── tools +│   │   └── appengine-local-endpoints +│   │   └── v1 +│   ├── shared +│   │   └── jsp +│   ├── tools +│   │   └── jsp +│   └── user +└── war + ├── dist + │   ├── … + ├── iitc-nightly + │   ├── iitc-nightly-latest.user.js + │   └── … + ├── images + │   ├── … + ├── screenshots + │   ├── … + └── WEB-INF + ├── appengine-web.xml + └── web.xml +``` diff --git a/tools/appengine/war/WEB-INF/appengine-web.xml b/tools/appengine/war/WEB-INF/appengine-web.xml new file mode 100644 index 00000000..1e1734da --- /dev/null +++ b/tools/appengine/war/WEB-INF/appengine-web.xml @@ -0,0 +1,12 @@ + + iitcserv + 1 + + + + + + + + true + diff --git a/tools/appengine/war/WEB-INF/web.xml b/tools/appengine/war/WEB-INF/web.xml new file mode 100644 index 00000000..029e4c77 --- /dev/null +++ b/tools/appengine/war/WEB-INF/web.xml @@ -0,0 +1,2 @@ + + diff --git a/tools/iitc-nightly.sh b/tools/iitc-nightly.sh index ad593803..d017f93f 100644 --- a/tools/iitc-nightly.sh +++ b/tools/iitc-nightly.sh @@ -1,15 +1,30 @@ -#!/bin/sh +#!/bin/zsh + +GIT="git://github.com/breunigs/ingress-intel-total-conversion.git" +URL="https://nodeload.github.com/breunigs/ingress-intel-total-conversion/tar.gz/gh-pages" +PTH="ingress-intel-total-conversion-gh-pages" set -e cd /tmp -rm -rf ingress-intel-total-conversion -git clone --depth=1 git://github.com/breunigs/ingress-intel-total-conversion.git -cd ingress-intel-total-conversion +rm -rf $PTH +wget -q -O - $URL | (cd /tmp && tar xfz -) +cd $PTH ./build.py date=$(date +"%Y-%m-%d") -commit=$(git rev-parse HEAD | head -c 10) - +commit=$(git ls-remote --heads $GIT | head -c 10) # https://github.com/andreafabrizi/Dropbox-Uploader -dropbox-up upload iitc-debug.user.js iitc-nightly/iitc-nightly-$date-$commit.user.js +/opt/dropbox-up upload iitc-debug.user.js iitc-nightly/iitc-nightly-$date-$commit.user.js +/opt/dropbox-up upload iitc-debug.user.js iitc-nightly/iitc-nightly-latest.user.js + +cp iitc-debug.user.js /home/pi/iitc-appengine/war/iitc-nightly/iitc-nightly-$date-$commit.user.js +cp iitc-debug.user.js /home/pi/iitc-appengine/war/iitc-nightly/iitc-nightly-latest.user.js +mv screenshots/* /home/pi/iitc-appengine/war/screenshots +mv images/* /home/pi/iitc-appengine/war/images +mv dist/images/* /home/pi/iitc-appengine/war/dist/images/ +rmdir dist/images +mv dist/* /home/pi/iitc-appengine/war/dist/ +cd /home/pi/iitc-appengine/ +rm **/*@* # not supported by app engine +./appenginesmall/bin/appcfg.sh update war