makerelease.sh 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!/bin/bash
  2. set -e
  3. project="cnc-control"
  4. basedir="$(dirname "$0")"
  5. [ "${basedir:0:1}" = "/" ] || basedir="$PWD/$basedir"
  6. origin="$basedir"
  7. tmpdir="/tmp"
  8. do_git_tag=1
  9. [ "$1" = "--notag" ] && do_git_tag=0
  10. major="$(cat $origin/firmware/cpu-firmware/main.h | grep -e 'VERSION_MAJOR' | head -n1 | cut -f2)"
  11. minor="$(cat $origin/firmware/cpu-firmware/main.h | grep -e 'VERSION_MINOR' | head -n1 | cut -f2)"
  12. version="$major.$minor"
  13. if [ -z "$major" -o -z "$minor" ]; then
  14. echo "Could not determine version!"
  15. exit 1
  16. fi
  17. release_name="$project-$version"
  18. tarball="$release_name.tar.bz2"
  19. tagname="release-$version"
  20. tagmsg="$project-$version release"
  21. export GIT_DIR="$origin/.git"
  22. cd "$tmpdir"
  23. rm -Rf "$release_name" "$tarball"
  24. echo "Creating target directory"
  25. mkdir "$release_name"
  26. cd "$release_name"
  27. echo "git checkout"
  28. git checkout -f
  29. find "$tmpdir/$release_name" -name makerelease.sh | xargs rm
  30. find "$tmpdir/$release_name" -name .gitignore | xargs rm
  31. echo "creating tarball"
  32. cd "$tmpdir"
  33. tar cjf "$tarball" "$release_name"
  34. mv "$tarball" "$origin"
  35. echo "running CPU testbuild"
  36. cd "$tmpdir/$release_name/firmware/cpu-firmware"
  37. make
  38. echo "running COPROC testbuild"
  39. cd "$tmpdir/$release_name/firmware/coproc-firmware"
  40. make
  41. echo "removing testbuild"
  42. cd "$tmpdir"
  43. rm -R "$release_name"
  44. if [ "$do_git_tag" -ne 0 ]; then
  45. echo "Tagging GIT"
  46. cd "$origin"
  47. git tag -m "$tagmsg" -a "$tagname"
  48. fi
  49. echo
  50. echo "built release $version"