<NME> jenkins-test
<BEF> #!/bin/bash
#
# this is the script run by the Jenkins server to run the tools tests.  Be
# sure to always run it in its dir, i.e. ./jenkins-test, otherwise it might
# remove things that you don't want it to.
#
# runs here:
# https://jenkins.debian.net/job/reproducible_fdroid_test

if [ `dirname $0` != "." ]; then
    echo "only run this script like ./`basename $0`"
    exit
fi

# jenkins.debian.net slaves do not export WORKSPACE
if [ -z $WORKSPACE ]; then
    export WORKSPACE=`pwd`
fi

if [ -z $LC_ALL ] || [ $LC_ALL == "C.UTF-8" ] || [[ $LC_ALL != *.UTF-8 ]]; then
    for var in `set | grep -Eo '^(LANG|LC_[A-Z]+)' | sort -u`; do
        unset $var
    done
    export LC_ALL=en_US.UTF-8
    echo "Forced locale to ${LC_ALL}:"
    set | grep -E '^(LANG|LC_[A-Z]+)'
fi

set -e
# this is set up and managed by jenkins-build-all
cd $WORKSPACE/fdroiddata

rm -f config.py
../fdroid init --verbose
../fdroid update

if [ ! -e $WORKSPACE/fdroiddata/repo ]; then
    echo "WARNING: $WORKSPACE/fdroiddata/repo does not exist, making placeholder!"
    mkdir $WORKSPACE/fdroiddata/repo
    cp $WORKSPACE/tests/repo/*obb.*.apk $WORKSPACE/fdroiddata/repo/
fi
./run-tests $WORKSPACE/fdroiddata/repo

# this is set up and managed by jenkins-build-all
cd $WORKSPACE/fdroiddata

rm -f config.py config.yml keystore.jks keystore.p12
../fdroid init --verbose

export GNUPGHOME=$WORKSPACE/tests/gnupghome
if [ ! -e $GNUPGHOME/private-keys-v1.d ]; then
    mkdir -p $GNUPGHOME/private-keys-v1.d
    chmod 0700 $GNUPGHOME/private-keys-v1.d
fi
gpg --import $GNUPGHOME/secring.gpg

echo "build_server_always: true" >> config.yml
echo "deploy_process_logs: true" >> config.yml
echo "make_current_version_link: false" >> config.yml
echo "gpghome: $GNUPGHOME" >> config.yml
echo "gpgkey: CE71F7FB" >> config.yml
chmod 0600 config.yml
sed -i '/\s*repo_key_sha256:.*/d' config.yml

# publish process when building and signing are on separate machines
test -d repo || mkdir repo
test -d archive || mkdir archive
# when everything is copied over to run on SIGN machine
../fdroid publish

../fdroid gpgsign
# when everything is copied over to run on BUILD machine,
# which does not have a keyring, only a cached pubkey
echo "repo_pubkey: 308204e1308202c9a003020102020434597643300d06092a864886f70d01010b050030213110300e060355040b1307462d44726f6964310d300b06035504031304736f7661301e170d3136303931333230313930395a170d3434303133303230313930395a30213110300e060355040b1307462d44726f6964310d300b06035504031304736f766130820222300d06092a864886f70d01010105000382020f003082020a028202010086ef94b5aacf2ba4f38c875f4194b44f5644392e3715575d7c92828577e692c352b567172823851c8c72347fbc9d99684cd7ca3e1db3e4cca126382c53f2a5869fb4c19bdec989b2930501af3e758ff40588915fe96b10076ce3346a193a0277d79e83e30fd8657c20e35260dd085aa32eac7c4b85786ffefbf1555cafe2bc928443430cdbba48cfbe701e12ae86e676477932730d4fc7c00af820aef85038a5b4df084cf6470d110dc4c49ea1b749b80b34709d199b3db516b223625c5de4501e861f7d261b3838f8f616aa78831d618d41d25872dc810c9b2087b5a9e146ca95be740316dcdbcb77314e23ab87d4487913b800b1113c0603ea2294188b71d3e49875df097b56f9151211fc6832f9790c5c83d17481f14ad37915fd164f4fd713f6732a15f4245714b84cd665bdbd085660ea33ad7d7095dcc414f09e3903604a40facc2314a115c0045bb50e9df38efb57e1b8e7cc105f340a26eeb46aba0fa6672953eee7f1f92dcb408e561909bbd4bdf4a4948c4d57c467d21aa238c34ba43be050398be963191fa2b49828bc1e4eeed224b40dbe9dc3e570890a71a974a2f4527edb1b07105071755105edcb2af2f269facfb89180903a572a99b46456e80d4a01685a80b233278805f2c876678e731f4ec4f52075aeef6b2b023efbb8a3637ef507c4c37c27e428152ec1817fcba640ad601cb09f72f0fbe2d274a2410203010001a321301f301d0603551d0e04160414c28bf33dd5a9a17338e5b1d1a6edd8c7d141ed0b300d06092a864886f70d01010b0500038202010084e20458b2aafd7fc27146b0986f9324f4260f244920417a77c9bf15e2e2d22d2725bdd8093ec261c3779c3ca03312516506f9410075b90595b41345956d8eb2786fb5994f195611382c2b99dba13381b0100a30bc9e6e47248bf4325e2f6eec9d789216dc7536e753bf1f4be603d9fa2e6f5e192b4eb988b8cdb0bb1e8668a9225426f7d4636479f73ed24ad1d2657c31e63c93d9679b9080171b3bd1bf10a3b92b80bd790fbf62d3644900cd08eae8b9bf9c2567be98dc8cdd2ae19a8d57a3e3e2de899f81f1279f578989e6af906f80c8c2b67651730ee7e568c1af5bcb845b6d685dc55332a9984aeceaea3b7e883447edf1c76b155d95253e39b9710eaa22efa6c81468829702b5dce7126538f3ca70c2f0ad9a5795435fdb1f715f20d60359ef9a9926c7050116e802df651727447848827815f70bd82af3cedd08783156102d2d8ce995c4c43b8e47e91a3e6927f3505a5d395e6bebb84542c570903eeab4382a1c2151f1471c7a06a34dc4d268d8fa72e93bdcd2dccc4302ecac47b9e7e3d8bc9b46d21cd097874a24d529548018dc190ff568c6aa428f0a5eedff1a347730931c74f19277538e49647a4ad7254f4c1ec7d4da12cce9e1fad9607534e66ab40a56b473d9d7e3d563fd03cad2052bad365c5a29f8ae54f09b60dbca3ea768d7767cbe1c133ca08ce725c1c1370f4aab8e5b6e286f52dc0be8d0982b5a" >> config.yml
../fdroid update --nosign
sed -i '/^repo_pubkey: /d' config.yml
# when everything is copied over to run on SIGN machine
../fdroid signindex --verbose

<MSG> jenkins-test: make new keystore on each test so the password is known

<DFF> @@ -30,7 +30,7 @@ cd tests
 # this is set up and managed by jenkins-build-all
 cd $WORKSPACE/fdroiddata
 
-rm -f config.py
+rm -f config.py keystore.jks
 ../fdroid init --verbose
 ../fdroid update
 

{'commit': 'diff --git a/jenkins-test b/jenkins-test\nindex 69ed58a3..74fbba53 100755\n--- a/jenkins-test\n+++ b/jenkins-test\n@@ -30,7 +30,7 @@ cd tests\n # this is set up and managed by jenkins-build-all\n cd $WORKSPACE/fdroiddata\n \n-rm -f config.py\n+rm -f config.py keystore.jks\n ../fdroid init --verbose\n ../fdroid update\n \n', 'commit_subject': 'jenkins-test: make new keystore on each test so the password is known', 'repo_name': 'f-droid/fdroidserver', 'committer': {'name': 'Hans-Christoph Steiner', 'email': '8800578b51f022c8d8adb9606a8b3db4fedbdac6@eds.org', 'time_sec': '1511867413', 'tz_offset': '60', 'date': {'seconds': '1511867413'}}, 'commit_tree': '37d65fcaea23e011090b008c677e773d571b678f', 'commit_message': 'jenkins-test: make new keystore on each test so the password is known\n', 'language_name': 'Shell', 'license': 'agpl-3.0', 'hunks': '@@ -30,7 +30,7 @@ cd tests\n # this is set up and managed by jenkins-build-all\n cd $WORKSPACE/fdroiddata\n \n-rm -f config.py\n+rm -f config.py keystore.jks\n ../fdroid init --verbose\n ../fdroid update\n \n', 'addition_count': 1, 'deletion_count': 1, 'src_file': 'a/jenkins-test', 'tgt_file': 'b/jenkins-test', 'file_extension': '', 'before_file': '#!/bin/bash\n#\n# this is the script run by the Jenkins server to run the tools tests.  Be\n# sure to always run it in its dir, i.e. ./jenkins-test, otherwise it might\n# remove things that you don\'t want it to.\n#\n# runs here:\n# https://jenkins.debian.net/job/reproducible_fdroid_test\n\nif [ `dirname $0` != "." ]; then\n    echo "only run this script like ./`basename $0`"\n    exit\nfi\n\n# jenkins.debian.net slaves do not export WORKSPACE\nif [ -z $WORKSPACE ]; then\n    export WORKSPACE=`pwd`\nfi\n\nif [ -z $LC_ALL ] || [ $LC_ALL == "C.UTF-8" ] || [[ $LC_ALL != *.UTF-8 ]]; then\n    for var in `set | grep -Eo \'^(LANG|LC_[A-Z]+)\' | sort -u`; do\n        unset $var\n    done\n    export LC_ALL=en_US.UTF-8\n    echo "Forced locale to ${LC_ALL}:"\n    set | grep -E \'^(LANG|LC_[A-Z]+)\'\nfi\n\nset -e\n# this is set up and managed by jenkins-build-all\ncd $WORKSPACE/fdroiddata\n\nrm -f config.py\n../fdroid init --verbose\n../fdroid update\n\nif [ ! -e $WORKSPACE/fdroiddata/repo ]; then\n    echo "WARNING: $WORKSPACE/fdroiddata/repo does not exist, making placeholder!"\n    mkdir $WORKSPACE/fdroiddata/repo\n    cp $WORKSPACE/tests/repo/*obb.*.apk $WORKSPACE/fdroiddata/repo/\nfi\n./run-tests $WORKSPACE/fdroiddata/repo\n\n# this is set up and managed by jenkins-build-all\ncd $WORKSPACE/fdroiddata\n\nrm -f config.py config.yml keystore.jks keystore.p12\n../fdroid init --verbose\n\nexport GNUPGHOME=$WORKSPACE/tests/gnupghome\nif [ ! -e $GNUPGHOME/private-keys-v1.d ]; then\n    mkdir -p $GNUPGHOME/private-keys-v1.d\n    chmod 0700 $GNUPGHOME/private-keys-v1.d\nfi\ngpg --import $GNUPGHOME/secring.gpg\n\necho "build_server_always: true" >> config.yml\necho "deploy_process_logs: true" >> config.yml\necho "make_current_version_link: false" >> config.yml\necho "gpghome: $GNUPGHOME" >> config.yml\necho "gpgkey: CE71F7FB" >> config.yml\nchmod 0600 config.yml\nsed -i \'/\\s*repo_key_sha256:.*/d\' config.yml\n\n# publish process when building and signing are on separate machines\ntest -d repo || mkdir repo\ntest -d archive || mkdir archive\n# when everything is copied over to run on SIGN machine\n../fdroid publish\n\n../fdroid gpgsign\n# when everything is copied over to run on BUILD machine,\n# which does not have a keyring, only a cached pubkey\necho "repo_pubkey: 308204e1308202c9a003020102020434597643300d06092a864886f70d01010b050030213110300e060355040b1307462d44726f6964310d300b06035504031304736f7661301e170d3136303931333230313930395a170d3434303133303230313930395a30213110300e060355040b1307462d44726f6964310d300b06035504031304736f766130820222300d06092a864886f70d01010105000382020f003082020a028202010086ef94b5aacf2ba4f38c875f4194b44f5644392e3715575d7c92828577e692c352b567172823851c8c72347fbc9d99684cd7ca3e1db3e4cca126382c53f2a5869fb4c19bdec989b2930501af3e758ff40588915fe96b10076ce3346a193a0277d79e83e30fd8657c20e35260dd085aa32eac7c4b85786ffefbf1555cafe2bc928443430cdbba48cfbe701e12ae86e676477932730d4fc7c00af820aef85038a5b4df084cf6470d110dc4c49ea1b749b80b34709d199b3db516b223625c5de4501e861f7d261b3838f8f616aa78831d618d41d25872dc810c9b2087b5a9e146ca95be740316dcdbcb77314e23ab87d4487913b800b1113c0603ea2294188b71d3e49875df097b56f9151211fc6832f9790c5c83d17481f14ad37915fd164f4fd713f6732a15f4245714b84cd665bdbd085660ea33ad7d7095dcc414f09e3903604a40facc2314a115c0045bb50e9df38efb57e1b8e7cc105f340a26eeb46aba0fa6672953eee7f1f92dcb408e561909bbd4bdf4a4948c4d57c467d21aa238c34ba43be050398be963191fa2b49828bc1e4eeed224b40dbe9dc3e570890a71a974a2f4527edb1b07105071755105edcb2af2f269facfb89180903a572a99b46456e80d4a01685a80b233278805f2c876678e731f4ec4f52075aeef6b2b023efbb8a3637ef507c4c37c27e428152ec1817fcba640ad601cb09f72f0fbe2d274a2410203010001a321301f301d0603551d0e04160414c28bf33dd5a9a17338e5b1d1a6edd8c7d141ed0b300d06092a864886f70d01010b0500038202010084e20458b2aafd7fc27146b0986f9324f4260f244920417a77c9bf15e2e2d22d2725bdd8093ec261c3779c3ca03312516506f9410075b90595b41345956d8eb2786fb5994f195611382c2b99dba13381b0100a30bc9e6e47248bf4325e2f6eec9d789216dc7536e753bf1f4be603d9fa2e6f5e192b4eb988b8cdb0bb1e8668a9225426f7d4636479f73ed24ad1d2657c31e63c93d9679b9080171b3bd1bf10a3b92b80bd790fbf62d3644900cd08eae8b9bf9c2567be98dc8cdd2ae19a8d57a3e3e2de899f81f1279f578989e6af906f80c8c2b67651730ee7e568c1af5bcb845b6d685dc55332a9984aeceaea3b7e883447edf1c76b155d95253e39b9710eaa22efa6c81468829702b5dce7126538f3ca70c2f0ad9a5795435fdb1f715f20d60359ef9a9926c7050116e802df651727447848827815f70bd82af3cedd08783156102d2d8ce995c4c43b8e47e91a3e6927f3505a5d395e6bebb84542c570903eeab4382a1c2151f1471c7a06a34dc4d268d8fa72e93bdcd2dccc4302ecac47b9e7e3d8bc9b46d21cd097874a24d529548018dc190ff568c6aa428f0a5eedff1a347730931c74f19277538e49647a4ad7254f4c1ec7d4da12cce9e1fad9607534e66ab40a56b473d9d7e3d563fd03cad2052bad365c5a29f8ae54f09b60dbca3ea768d7767cbe1c133ca08ce725c1c1370f4aab8e5b6e286f52dc0be8d0982b5a" >> config.yml\n../fdroid update --nosign\nsed -i \'/^repo_pubkey: /d\' config.yml\n# when everything is copied over to run on SIGN machine\n../fdroid signindex --verbose\n', 'message': 'jenkins-test: make new keystore on each test so the password is known\n', 'author_name': 'Hans-Christoph Steiner', 'lang': 'jenkins-test'}