Skip to content

Commit

Permalink
travis: handle packaging for OBS and windows
Browse files Browse the repository at this point in the history
  • Loading branch information
jgeboski committed Dec 20, 2015
1 parent a418f60 commit 1aae55b
Show file tree
Hide file tree
Showing 7 changed files with 143 additions and 13 deletions.
49 changes: 42 additions & 7 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,52 @@ compiler:
- gcc

env:
- ANALYZER=""
- ANALYZER="scan-build -k --status-bugs"
global:
- secure: "de18DuRkeapGDbP+1u4+5lgUTeZeVdZVKZdeULv2PbArf+XjAGp1XIRPCLQ0tmrmGZuOb4Py8Hm+mrFgmli+maoUV8dxqN0oLMFgcRyAzwHfHohMNNLn+0VTmxc2S36EHx0iYzPcLU8xADv2fWgG008Ql093UlPivTHB26uC22hdX8HBkF2mtLtlSPrWtJk2Ojr53hCZZCiw0b5SpgFtvcPHkDbmp54XlK4fSGyX0rcLaQHcJZxe7A0hFE4tEB+exxp4UgBckeP7gEQLwmw6XXwt/vQcNXy75qtw0RvrLvnJDMZZM2cBbBcHug+9ORNS5WrSTcJ16Onjq+qZBC++hniJHPtLFqLymmvVt3+qLhSlOyFIxPCPCUMenOiXI1rHyMgAiZFJDwFeInm97rBnS0CKUuZ7/x+8kK/T8pSqjGLXczJ5SDhBZvaBrkyrqB9lGmDFPTK9+v/XwZl6FZncAT1CqlU070ZsfRQJlx8K41OJ534nUaxutPG32BY+2AODmmusYygVVXI0yF6ry5nuWsV6RqBa5wrg8ZQx64yYxk7BPsIpKvCiiBeHfkHZt7C4CDdrQD6+kQVuB13TXI74Uv2olzp3RSRmii8eCU9RtCZeF7GmYFbEG5PPYX5kFKBn4u90ctVBc7Sb5jWOqIMaYjCtmT5+B6lRPrUeemh4P2o="
- secure: "lgKD/7KlClD77CLnQzvIuIsdDhTwACtRzL0vuqIGBlyclTO+UVC7vIQ6RyOt1Jab9Vg77xItsyRgZqbjDnE/4Vml614rrSfPAaHCBCvf3Z9j7/oqv0maYmX7bhN3/nbkru2LeQMQENZO5CyhYpHcoqPfqEwdryOx4TUj3Tt75QjCfzWr5IM4g8327M+In8NhoovwI+5FMGZUTJZxyAAD8KgdCxnRk8U2c2M096eDObilwEQoD69gM/ZJ8aAyGZkKmGbAkLP8bSx9u6DYAiT3vhRJwopX99u1Y4V8zEik9tqFZYyWlJLrd0wz4EkAN6jdG4rbhyZ33jVr2zMsAnqMeVnB0tLdw7ajWTSOHMwqyK+S8GMDZ87iwQknmE8Zn9wghtJdHTOTJGScFUkS35vOjBXPg2zB6FKP2RAioRBYQfnSV5PWWfADj2j7X6hEsCqO+rdOGq/GPQcRBiveAalq4vcciAaVr01xjU1d7dBSGiMMLWtnWWJfcCwDsJ8lhcNbDXSrfDXRDmO7OsTXzP9Dzc6moJdmOmJVCcdXPjYJGuDHPsDd9qRlx0wXMKzKrHIf/fgwx304EA68OA4j5WkEKcqYYlhzjTG83CKAwLP/8gQ8gsgOeeDeCEyKHN/bmr8Jb7kDYHat34NElEwYpW558rE1U7cNxQtyzaDN7nY/9dg="
- secure: "WF5OAKWYgKdPO7H6UuLoDupfJyjzJlVxXd3IQR/Dq6eytDF5k5tzsRkqE8BwbpmX51bgbWAhxU+9yeyb7GDNp6koIDltgMYCqt7KZsstKjz7fHSqkjqxmzzXA3reKO/iOz7eddPPrhsliNpsx7iEC8/HWE3hXuyL68SlPzLpFK1h4o2rJMPF9VNmS1hruY21qiuEltxEmqYMR9skMKfddebNChp23pza8i6MWkBIMDsAiZ0ek5WVerWHM8+5/NZx/kKPG0wDThvKsB5lLF8OqlsbBO2AyQMxvQVxHgx6rK3y9GOPiAdVyJHPQHk66hFDkWCkak5xTcbbOJ0P8Qou5A+c/BM9Cyy2W6m4M3BboOD9oso49veAF7p6bcL/QZwEUr/MlJFGfWez9UQaRfESn3kipF/Jhct6OOk+M50DBrVsHgL5ph8y8GJiU7xpKOHeUjM5iB4GJimjotR9u3YYxszbQxjpQ0MG2vnTUNQ1YEnTJ384Y+OQI9KXCjhmxfgymZ3/UyZd9EPnfc8gi2SCr8+xtogA4Bxkz12EEM9vdS195I0dot0OQYlYpZL0HsBMEirsKr049mX6A+Ca8WKUVPqZnqNfbpg80G/F/+hToGTkFoUmOCkpIhwvJb1zMbMLHQhDv1k5YqIcIMg8dY1sxO2IvVsueDBSEqhtZUPNxgQ="
- secure: "QOIE9TZzTYgFfMPVhwvOEo8buxU0s6/a2+vBsOprAw94juhafpPyiBEUzqyzVLJX+ZY3aVt+s6ch4y4ehEwmyWnqJzxKg6CIy3dGLaBEW+GvZDVtTj1rC3Q/bkPB/MrHkChv08o1Ysb8yQ0gF0GWS+wUQ3m58qgKYMH/ve0Tt76AMBxVU548j1CdKKF1SO6bedCDhX8txiB4MeYWV6pfripYIMcjL5w3fHN8LIw/ctc8APPr2owIJ6rxv8scQXfWWpgCJVxHCZaP7TP5HwLnjFPX+UNpxlH7ZDm+opA9clep5Q1SDmDgUcXT3aMXjRulbzJxcKXXiVNfByEm+Gu85W+c0ka0rXvcKtRZmpwprbiBnMQ+bP/1MqicNkjCLDT/EFMzX0Bo2Kzwu/9Wc/VdAohnIWq03NUsErTL8CGmkI5QhCBJ4nBY1u87wpkOghq95woqxhiC7VI+qV26u0JNBf3miUD5nUfSTS1Ym7BoeEgKFUViDeX7P7LMzKoGfM0+Clutpemq0FuLRP+Ez+4a//UhY42TxUAfdPUCPmGrcm0DlHAa1cZYa2jPcTHOB7trvk31AUgNFCTa36SbLeEym8Z68Z8/8XOLw7Hej8wYSewmc/xwXAq3jNOXh9DAKc4ktOv7EC8fmdCM8qzUDkOzkEcG+tOB7DNPHQi/ZqoNdMk="
- MY_DEPLOY_BRANCH=master
- pidgindir=/tmp/pidgin

before_install:
- echo "deb http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_$(lsb_release -rs) ./"
| sudo tee /etc/apt/sources.list.d/suse.list
- curl -s "http://download.opensuse.org/repositories/openSUSE:/Tools/xUbuntu_$(lsb_release -rs)/Release.key"
| sudo apt-key add -
- sudo apt-get update -qq
- sudo apt-get install -qq
--no-install-recommends
clang
libjson-glib-dev
libpurple-dev
--no-install-recommends
binutils-mingw-w64-i686
clang
gcc-mingw-w64-i686
libjson-glib-dev
libpurple-dev
osc
- mkdir -p ~/.ssh
- openssl aes-256-cbc
-K $encrypted_1a8668021c4a_key
-iv $encrypted_1a8668021c4a_iv
-in .travis/key -out ~/.ssh/id_rsa -d
- chmod 600 ~/.ssh/id_rsa

install:
- .travis/win32-install.sh

before_script:
- ./update.sh

script:
- CFLAGS="-Werror" ./autogen.sh --enable-warnings
- ${ANALYZER} make
- make
- make clean
- scan-build -k --status-bugs make
- .travis/win32-build.sh

after_success:
- .travis/win32-deploy.sh
- .travis/obs.sh

after_script:
- shred ~/.ssh/id_rsa
- rm -f ~/.ssh/id_rsa
Binary file added .travis/key
Binary file not shown.
49 changes: 49 additions & 0 deletions .travis/obs.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
#!/bin/bash

[ "${TRAVIS_PULL_REQUEST}" == "false" -a \
"${TRAVIS_BRANCH}" == "${MY_DEPLOY_BRANCH}" \
] || exit
set -e

FULLVERS="$(date +%Y%m%d)~$(git rev-parse --short=7 HEAD)~${TRAVIS_BUILD_NUMBER}"
FULLDATE=$(date -R)
REPONAME=$(basename "${TRAVIS_REPO_SLUG}")

git reset -q --hard
git clean -dfqx
./update.sh

sed -ri \
-e "20 s/^(\s+).*(,)\$/\1\[${FULLVERS}\]\2/" \
configure.ac
sed -ri \
-e "s/(^Build-Depends:.*)/\1, libzephyr4/" \
debian/control

cat <<EOF > debian/changelog
${REPONAME} (${FULLVERS}) UNRELEASED; urgency=medium
* Updated to ${FULLVERS}.
-- Travis CI <[email protected]> ${FULLDATE}
EOF

cat <<EOF > ~/.oscrc
[general]
apiurl = https://api.opensuse.org
[https://api.opensuse.org]
user = ${OBSUSER}
pass = ${OBSPASS}
EOF

mkdir -p m4
osc checkout "home:${OBSUSER}" "${REPONAME}" -o /tmp/obs

(
cd /tmp/obs
rm -f *.{dsc,tar.gz}
dpkg-source -I -b "${TRAVIS_BUILD_DIR}"

osc addremove -r
osc commit -m "Updated to ${FULLVERS}"
)
10 changes: 10 additions & 0 deletions .travis/win32-build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#!/bin/bash
set -e

CC="i686-w64-mingw32-gcc" \
DLL_LD_FLAGS="-static-libgcc" \
make -f Makefile.mingw \
install \
GLIB_GENMARSHAL="glib-genmarshal" \
PLUGIN_VERSION="${VERSION}" \
WIN32_TREE_TOP="win32-dev/pidgin-2.10.11"
11 changes: 11 additions & 0 deletions .travis/win32-deploy.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
#!/bin/bash

[ "${TRAVIS_PULL_REQUEST}" == "false" -a \
"${TRAVIS_BRANCH}" == "${MY_DEPLOY_BRANCH}" \
] || exit
set -e

sftp -qo StrictHostKeyChecking=no -P ${SSHPORT} ${SSHUSER} -b <<EOF
cd pidgin
put win32-install-dir/plugins/libfacebook.dll
EOF
24 changes: 24 additions & 0 deletions .travis/win32-install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash
set -e

wget -nv -nc -P downloads/mingw-4.7.2 \
http://downloads.sourceforge.net/mingw/MinGW/Base/gcc/Version4/gcc-4.7.2-1/libssp-4.7.2-1-mingw32-dll-0.tar.lzma

wget -nv -nc -P downloads/glib-2.28.8 \
http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/gettext-runtime-dev_0.18.1.1-2_win32.zip \
http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies/zlib-dev_1.2.5-2_win32.zip \
http://ftp.gnome.org/pub/gnome/binaries/win32/glib/2.28/glib-dev_2.28.8-1_win32.zip

wget -nv -nc -P downloads \
https://github.com/jgeboski/purple-facebook/releases/download/downloads/json-glib-0.14.tar.gz \
https://github.com/jgeboski/purple-facebook/releases/download/downloads/pidgin-2.10.11.tar.gz

for DIR in glib-2.28.8 mingw-4.7.2 .; do
mkdir -p "win32-dev/${DIR}"
find "downloads/${DIR}" -maxdepth 1 -iname '*.tar.*' \
-exec tar xf "{}" -C "win32-dev/${DIR}" \;
find "downloads/${DIR}" -maxdepth 1 -iname '*.zip' \
-exec unzip -qq "{}" -d "win32-dev/${DIR}" \;
done

ln -sf ../../mingw-4.7.2/bin/libssp-0.dll win32-dev/glib-2.28.8/lib/libssp.dll
13 changes: 7 additions & 6 deletions update.sh
Original file line number Diff line number Diff line change
Expand Up @@ -10,22 +10,23 @@ fi

test -z "$srcdir" && srcdir=$(dirname "$0")
test -z "$srcdir" && srcdir=.
test -z "$pidgindir" && pidgindir=.pidgin

cd "$srcdir"
REVISION=$(cat VERSION)

if ! test -d .pidgin/.hg; then
rm -rf .pidgin
hg clone "$URL" .pidgin
if ! test -d "$pidgindir/.hg"; then
rm -rf "$pidgindir"
hg clone "$URL" "$pidgindir"
fi

hg -R .pidgin -v pull
hg -R .pidgin -v update -C "$REVISION"
hg -R "$pidgindir" -v pull
hg -R "$pidgindir" -v update -C "$REVISION"
rm -rf pidgin

for FILE in $(cat MANIFEST_PIDGIN); do
mkdir -p $(dirname "pidgin/$FILE")
cp ".pidgin/$FILE" "pidgin/$FILE"
cp "$pidgindir/$FILE" "pidgin/$FILE"
done

touch $(cat MANIFEST_VOIDS)
Expand Down

0 comments on commit 1aae55b

Please sign in to comment.