mirror of
https://github.com/FortAwesome/Font-Awesome.git
synced 2025-01-15 09:40:27 +08:00
Automate tests for CI
This commit is contained in:
parent
e77a8c2dd6
commit
f2be1f9e8a
@ -13,7 +13,7 @@ Package.describe({
|
||||
});
|
||||
|
||||
Package.onUse(function (api) {
|
||||
api.versionsFrom('METEOR@0.9.2.1');
|
||||
api.versionsFrom(['METEOR@0.9.2.1', 'METEOR@1.0']);
|
||||
api.addFiles([
|
||||
// we bundle all font files, but the client will request only one of them via the CSS @font-face rule
|
||||
'fonts/fontawesome-webfont.eot', // IE8 or older only understands EOT. IE9+ will read it too because it loads the first occurrence of `src`
|
||||
|
@ -1,61 +1,40 @@
|
||||
# Publish package on Meteor's Atmosphere.js
|
||||
#!/bin/bash
|
||||
# Publish package to Meteor's repository, Atmospherejs.com
|
||||
|
||||
# Make sure Meteor is installed, per https://www.meteor.com/install. The curl'ed script is totally safe; takes 2 minutes to read its source and check.
|
||||
# Make sure Meteor is installed, per https://www.meteor.com/install.
|
||||
# The curl'ed script is totally safe; takes 2 minutes to read its source and check.
|
||||
type meteor >/dev/null 2>&1 || { curl https://install.meteor.com/ | sh; }
|
||||
|
||||
# sanity check: make sure we're in the root directory of the checkout
|
||||
cd "$( dirname "$0" )/.."
|
||||
|
||||
# publish separately any package*.js files we have, e.g. package.js, package-compat.js
|
||||
ALL_EXIT_CODE=0
|
||||
|
||||
# test any package*.js packages we may have, e.g. package.js, package-compat.js
|
||||
for PACKAGE_FILE in meteor/package*.js; do
|
||||
|
||||
# Meteor expects package.js to be in the root directory of the checkout, so copy there our package file under that name, temporarily
|
||||
cp $PACKAGE_FILE ./package.js
|
||||
|
||||
# publish package, creating it if it's the first time we're publishing
|
||||
PACKAGE_NAME=$(grep -i name $PACKAGE_FILE | head -1 | cut -d "'" -f 2)
|
||||
ATMOSPHERE_NAME=${PACKAGE_NAME/://}
|
||||
PACKAGE_NAME=$(grep -i name package.js | head -1 | cut -d "'" -f 2)
|
||||
|
||||
echo "Publishing $PACKAGE_NAME..."
|
||||
|
||||
# attempt to re-publish the package - the most common operation once the initial release has been made
|
||||
POTENTIAL_ERROR=$( meteor publish 2>&1 )
|
||||
|
||||
if [[ $POTENTIAL_ERROR =~ "There is no package named" ]]; then
|
||||
# actually this is the first time the package is created, so pass the special --create flag and congratulate the maintainer
|
||||
echo "Thank you for creating the official Meteor package for this library!"
|
||||
if meteor publish --create; then
|
||||
echo "Please post the following to https://github.com/raix/Meteor-community-discussions/issues/14:
|
||||
|
||||
--------------------------------------------- 8< --------------------------------------------------------
|
||||
|
||||
Happy to announce that I've published the official $PACKAGE_NAME to Atmosphere. Please star!
|
||||
https://atmospherejs.com/$ATMOSPHERE_NAME
|
||||
|
||||
--------------------------------------------- >8 --------------------------------------------------------
|
||||
|
||||
"
|
||||
# Attempt to re-publish the package - the most common operation once the initial release has
|
||||
# been made. If the package name was changed (rare), you'll have to pass the --create flag.
|
||||
meteor publish "$@"; EXIT_CODE=$?
|
||||
ALL_EXIT_CODE=$(( $ALL_EXIT_CODE + $EXIT_CODE ))
|
||||
if (( $EXIT_CODE == 0 )); then
|
||||
echo "Thanks for releasing a new version. You can see it at"
|
||||
echo "https://atmospherejs.com/${PACKAGE_NAME/://}"
|
||||
else
|
||||
echo "We got an error. Please post it at https://github.com/raix/Meteor-community-discussions/issues/14"
|
||||
fi
|
||||
else
|
||||
if (( $? > 0 )); then
|
||||
# the error wasn't that the package didn't exist, so we need to ask for help
|
||||
echo "We got an error. Please post it at https://github.com/raix/Meteor-community-discussions/issues/14:
|
||||
--------------------------------------------- 8< --------------------------------------------------------
|
||||
$POTENTIAL_ERROR
|
||||
--------------------------------------------- >8 --------------------------------------------------------
|
||||
"
|
||||
else
|
||||
echo "Thanks for releasing a new version of $PACKAGE_NAME! You can see it at
|
||||
https://atmospherejs.com/$ATMOSPHERE_NAME"
|
||||
fi
|
||||
fi
|
||||
|
||||
# we copied the file as package.js, regardless of its original name
|
||||
rm package.js
|
||||
|
||||
# temporary build files
|
||||
rm -rf ".build.$PACKAGE_NAME"
|
||||
# rm the temporary build files and package.js
|
||||
rm -rf ".build.$PACKAGE_NAME" versions.json package.js
|
||||
|
||||
done
|
||||
|
||||
exit $ALL_EXIT_CODE
|
||||
|
@ -1,36 +1,38 @@
|
||||
#!/bin/sh
|
||||
# Test Meteor package before publishing to Atmospherejs.com
|
||||
|
||||
# Make sure Meteor is installed, per https://www.meteor.com/install. The curl'ed script is totally safe; takes 2 minutes to read its source and check.
|
||||
# Make sure Meteor is installed, per https://www.meteor.com/install.
|
||||
# The curl'ed script is totally safe; takes 2 minutes to read its source and check.
|
||||
type meteor >/dev/null 2>&1 || { curl https://install.meteor.com/ | sh; }
|
||||
|
||||
# sanity check: make sure we're in the root directory of the checkout
|
||||
cd "$( dirname "$0" )/.."
|
||||
|
||||
# run tests and delete the temporary package.js even if Ctrl+C is pressed
|
||||
int_trap() {
|
||||
echo
|
||||
printf "Tests interrupted. Hopefully you verified in the browser that tests pass?\n\n"
|
||||
}
|
||||
ALL_EXIT_CODE=0
|
||||
|
||||
trap int_trap INT
|
||||
|
||||
# test any package*.js packages we may have, e.g. package.js, package-compat.js
|
||||
# test any package*.js packages we may have, e.g. package.js, package-standalone.js
|
||||
for PACKAGE_FILE in meteor/package*.js; do
|
||||
|
||||
PACKAGE_NAME=$(grep -i name $PACKAGE_FILE | head -1 | cut -d "'" -f 2)
|
||||
|
||||
echo "Testing $PACKAGE_NAME..."
|
||||
|
||||
# Meteor expects package.js to be in the root directory of the checkout, so copy there our package file under that name, temporarily
|
||||
# Meteor expects package.js in the root dir of the checkout, so copy there our package file under that name, temporarily
|
||||
cp $PACKAGE_FILE ./package.js
|
||||
|
||||
PACKAGE_NAME=$(grep -i name package.js | head -1 | cut -d "'" -f 2)
|
||||
|
||||
echo "### Testing $PACKAGE_NAME..."
|
||||
|
||||
# provide an invalid MONGO_URL so Meteor doesn't bog us down with an empty Mongo database
|
||||
if [ $# -gt 0 ]; then
|
||||
# interpret any parameter to mean we want an interactive test
|
||||
MONGO_URL=mongodb:// meteor test-packages ./
|
||||
else
|
||||
# automated/CI test with phantomjs
|
||||
spacejam --mongo-url mongodb:// test-packages ./
|
||||
ALL_EXIT_CODES=$(( $ALL_EXIT_CODES + $? ))
|
||||
fi
|
||||
|
||||
rm -rf ".build.$PACKAGE_NAME"
|
||||
rm -rf ".build.local-test:$PACKAGE_NAME"
|
||||
rm versions.json 2>/dev/null
|
||||
|
||||
rm package.js
|
||||
# delete temporary build files and package.js
|
||||
rm -rf .build.* versions.json package.js
|
||||
|
||||
done
|
||||
|
||||
exit $ALL_EXIT_CODES
|
||||
|
@ -42,6 +42,9 @@
|
||||
],
|
||||
"dependencies": {
|
||||
},
|
||||
"devDependencies": {
|
||||
"spacejam": "^1.1.1"
|
||||
},
|
||||
"engines" : {
|
||||
"node" : ">=0.10.3"
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user