Skip to content

Instantly share code, notes, and snippets.

@NachoMan
Created August 19, 2010 01:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save NachoMan/536765 to your computer and use it in GitHub Desktop.
Save NachoMan/536765 to your computer and use it in GitHub Desktop.
set -ex
git clean -dfx
echo "Setup dependancies"
eval $(perl -Mlocal::lib=support)
wget -q -O - http://cpanmin.us | perl - --notest App::cpanminus
./support/bin/cpanm --notest \
CPAN::Uploader \
Module::Install \
TAP::Formatter::JUnit
./support/bin/cpanm --installdeps --notest .
echo "Setup environment"
export OUTPUT=$WORKSPACE/output
mkdir -p $OUTPUT
export AUTOMATED_TESTING=1
export PERL_MM_USE_DEFAULT=1
export PERL_TEST_HARNESS_DUMP_TAP=$OUTPUT
export HARNESS_PERL_SWITCHES=-MDevel::Cover=-silent,off,-summary,off
export HARNESS_OPTIONS=j5
export TEST_VERBOSE=1
export TEST_POD=1
echo "Build package"
perl Makefile.PL
make
echo "Test package"
prove --merge --shuffle --timer --blib \
--formatter TAP::Formatter::JUnit > $OUTPUT/tests.xml \
|| echo "*** Failed test cases";
EXIT_STATUS=$?
echo "Make coverage"
(cd output; prove --nocolor --exec 'cat' $OUTPUT/t/*.t)
cover -select_re blib/lib -ignore_re '^t\/' -ignore_re '\/support\/'
if [ $EXIT_STATUS -ne 0 ];
then
echo "Exiting with $EXIT_STATUS"
exit $EXIT_STATUS
fi
echo "Make distribution"
make dist
echo "Publish distribution to CPAN"
PACKAGE_NAME=$(perl -MYAML=LoadFile -e "print LoadFile('META.yml')->{name}")
PACKAGE_CLASS=$(echo $PACKAGE_NAME | sed -e 's/-/::/g')
NEW_VERSION=$(perl -MYAML=LoadFile -e "print LoadFile('META.yml')->{version}")
CUR_VERSION=$(wget -q -O - http://cpanmetadb.appspot.com/v1.0/package/$PACKAGE_NAME | \
perl -MYAML=Load -e '$data=join("\n",<>); print Load($data)->{version} if $data')
if [ -n $NEW_VERSION ] && [ -n $CUR_VERSION ] && \
[ $(echo "$NEW_VERSION > $CUR_VERSION" | bc) -eq 1 ];
then
./support/bin/cpan-upload $PACKAGE_NAME-*.tar.gz
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment