node-update.sh 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. #!/bin/bash
  2. # Update node version.
  3. # 1) Check that there is only one parameter
  4. # of Wekan version number:
  5. if [ $# -ne 2 ]
  6. then
  7. echo "Syntax with Node old and new version number:"
  8. echo " ./node-update.sh 12.21.0 12.22.0"
  9. exit 1
  10. fi
  11. # With replacing longer strings than only version number,
  12. # trying to make sure only Node.js version is updated.
  13. echo "1) Updating Snap node"
  14. sed -i 's|node-engine: $1|node-engine: $2|g' snapcraft.yaml
  15. sed -i 's|node-engine: $1|node-engine: $2|g' .future-snap/snapcraft.yaml
  16. sed -i 's|node-engine: $1|node-engine: $2|g' .future-snap/broken-snapcraft.yaml
  17. echo "2) Updating Docker node"
  18. sed -i 's|NODE_VERSION=v$1|NODE_VERSION=v$2|g' Dockerfile
  19. sed -i 's|NODE_VERSION=v$1|NODE_VERSION=v$2|g' Dockerfile.arm64v8
  20. sed -i 's|NODE_VERSION=v$1|NODE_VERSION=v$2|g' .devcontainer/Dockerfile
  21. echo "3) Updating Rebuild scripts..."
  22. sed -i 's|sudo n $1|sudo n $2|g' rebuild-wekan.sh
  23. sed -i 's|nodejs.org/dist/v$1|nodejs.org/dist/v$2|g' rebuild-wekan.bat
  24. sed -i 's|node-v$1|node-v$2|g' rebuild-wekan.bat
  25. echo "4) Updating Stacksmith"
  26. sed -i 's|$1|$2|g' stacksmith/user-scripts/build.sh
  27. echo "5) Updating Travis"
  28. sed -i 's|$1|$2|g' .travis.yml
  29. echo "6) Adding changes to be committed."
  30. git add snapcraft.yaml .future-snap/snapcraft.yaml .future-snap/broken-snapcraft.yaml \
  31. Dockerfile Dockerfile.arm64v8 .devcontainer/Dockerfile rebuild-wekan.sh \
  32. rebuild-wekan.bat stacksmith/user-scripts/build.sh
  33. echo "7) Commit changes and push to GitHub"
  34. git commit -n -m "Updated to Node.js v$2. Thanks to Node.js developers."
  35. git push
  36. NODE_VERSION=$(node -v)
  37. # If installed node is not newest version
  38. if [ $NODE_VERSION != v$2 ]; then
  39. echo "8) Upgrading installed node to newest version"
  40. sudo n $2
  41. else
  42. echo "8) Installed node is already newest version"
  43. fi
  44. # If Sandstorm node does not exist
  45. SANDSTORM_NODE=~/projects/meteor-spk/meteor-spk-0.5.1/meteor-spk.deps/bin/node
  46. if [[ -f "$SANDSTORM_NODE" ]]; then
  47. echo "9) Installing local Sandstorm develoment version"
  48. ~/repos/wekan/releases/install-sandstorm.sh
  49. else
  50. echo "9) Local Sandstorm is already installed"
  51. fi
  52. SANDSTORM_NODE_VERSION=$($SANDSTORM_NODE -v)
  53. PROJECTS_ARCHIVE=~/projects.7z
  54. # If installed Sandstorm node is not newest version
  55. if [ $SANDSTORM_NODE != v$2 ]; then
  56. echo "10) Copy previously updated local node to Sandstorm node"
  57. cp /usr/local/bin/node ~/projects/meteor-spk/meteor-spk-0.5.1/meteor-spk.deps/bin/
  58. echo "11) Install 7zip"
  59. sudo apt-get -y install p7zip-full
  60. # If projects.7z exists, delete it
  61. if [[ -f "$PROJECTS_ARCHIVE" ]] then;
  62. echo "12) Deleting existing project.7z archive"
  63. rm $PROJECTS_ARCHIVE
  64. else
  65. echo "12) There is no existin project.7z archive"
  66. fi
  67. echo "13) Archive projects.7z directory"
  68. 7z a projects.7z projects
  69. echo "14) Upload projects.7z archive to webserver"
  70. scp projects.7z x2:/var/snap/wekan/common/releases.wekan.team/meteor-spk/
  71. fi
  72. echo "Done."