52 lines
876 B
Bash
Executable File
52 lines
876 B
Bash
Executable File
#!/bin/bash
|
|
|
|
echo "Test project build"
|
|
|
|
make clean && make
|
|
|
|
if [ $? -ne 0 ] ; then
|
|
echo "Build failed!"
|
|
exit 1
|
|
else
|
|
echo "Build OK!"
|
|
fi
|
|
|
|
|
|
echo "Format code"
|
|
make format
|
|
|
|
# Test if there are changed files that are not commited
|
|
|
|
if [ -n "$(git status --porcelain)" ] ; then
|
|
echo "Uncommited files detected"
|
|
git status
|
|
exit 1
|
|
else
|
|
echo "OK"
|
|
fi
|
|
|
|
|
|
echo "Currently set tags on this project"
|
|
git tag
|
|
echo -n "Are the required tags added? (Y/n)"
|
|
read ANSWER
|
|
if [ "$ANSWER" == "n" ]; then
|
|
echo "Please add required tags"
|
|
exit 1
|
|
fi
|
|
|
|
|
|
echo "Packaging the project"
|
|
|
|
make clean && make
|
|
|
|
TEMP_DIR=$(mktemp -d)
|
|
cp bin/atmega2560-user-code.ihx $TEMP_DIR
|
|
make clean
|
|
git archive --format=tar.gz -o $TEMP_DIR/$(git describe --abbrev=6 --dirty --always --tags --long).tar.gz HEAD
|
|
mv $TEMP_DIR/* bin/
|
|
rm -rf $TEMP_DIR
|
|
|
|
echo "Project packaging succeeded"
|
|
exit 0
|