release.sh 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #!/usr/bin/env bash
  2. export GITHUB_REPO=trilium
  3. if [[ $# -eq 0 ]] ; then
  4. echo "Missing argument of new version"
  5. exit 1
  6. fi
  7. VERSION=$1
  8. if ! [[ ${VERSION} =~ ^[0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2}(-.+)?$ ]] ;
  9. then
  10. echo "Version ${VERSION} isn't in format X.Y.Z"
  11. exit 1
  12. fi
  13. if ! git diff-index --quiet HEAD --; then
  14. echo "There are uncommitted changes"
  15. exit 1
  16. fi
  17. echo "Releasing Trilium $VERSION"
  18. jq '.version = "'$VERSION'"' package.json|sponge package.json
  19. git add package.json
  20. echo 'module.exports = { buildDate:"'`date --iso-8601=seconds`'", buildRevision: "'`git log -1 --format="%H"`'" };' > src/services/build.js
  21. git add src/services/build.js
  22. TAG=v$VERSION
  23. echo "Committing package.json version change"
  24. git commit -m "release $VERSION"
  25. git push
  26. echo "Tagging commit with $TAG"
  27. git tag $TAG
  28. git push origin $TAG
  29. bin/build.sh
  30. LINUX_X64_BUILD=trilium-linux-x64-$VERSION.tar.xz
  31. DEBIAN_X64_BUILD=trilium_${VERSION}_amd64.deb
  32. WINDOWS_X64_BUILD=trilium-windows-x64-$VERSION.zip
  33. MAC_X64_BUILD=trilium-mac-x64-$VERSION.zip
  34. MAC_ARM64_BUILD=trilium-mac-arm64-$VERSION.zip
  35. SERVER_BUILD=trilium-linux-x64-server-$VERSION.tar.xz
  36. echo "Creating release in GitHub"
  37. EXTRA=
  38. if [[ $TAG == *"beta"* ]]; then
  39. EXTRA=--prerelease
  40. fi
  41. echo "$GITHUB_CLI_AUTH_TOKEN" | gh auth login --with-token
  42. gh release create "$TAG" \
  43. --title "$TAG release" \
  44. --notes "" \
  45. $EXTRA \
  46. "dist/$DEBIAN_X64_BUILD" \
  47. "dist/$LINUX_X64_BUILD" \
  48. "dist/$WINDOWS_X64_BUILD" \
  49. "dist/$MAC_X64_BUILD" \
  50. "dist/$MAC_ARM64_BUILD" \
  51. "dist/$SERVER_BUILD"