2 # This script "releases" a version of dygraphs.
5 echo "Usage: $0 X.Y.Z" >&2
10 echo $VERSION |
egrep '\d+\.\d+\.\d+' > /dev
/null
12 echo "Version must be of the form 1.2.3 (got '$VERSION')" >&2
16 # Make sure this is being run from a release branch with the correct name.
17 branch
=$
(git rev-parse
--abbrev-ref HEAD
)
18 if [ $branch != "release-$VERSION" ]; then
19 echo "Must be on a branch named 'release-$VERSION' (found '$branch')" >&2
23 git status |
grep 'working directory clean' > /dev
/null
25 echo "Must release with a clean working directory. Commit your changes." >&2
29 grep "$VERSION" package.json
31 echo "Version in package.json doesn't match command line argument." >&2
35 grep "v$VERSION" bower.json
37 echo "Version in bower.json doesn't match command line argument." >&2
41 grep "$VERSION" releases.json
43 echo "Version $VERSION does not appear in releases.json." >&2
47 rm dygraph-combined.js
# changes to this will make the tests fail.
48 make lint
test test-combined
50 echo "Tests failed. Won't release!" >&2
53 git
reset --hard
# make test-combined deletes the source map
55 # Push a permanent copy of documentation & generated files to a versioned copy
56 # of the site. This is where the downloadable files are generated.
57 # TODO(danvk): make sure this actually generates the downloadable files!
58 echo "Pushing docs and generated files to dygraphs.com/$VERSION"
59 .
/push-to-web.sh dygraphs.com
:dygraphs.com
/$VERSION
61 echo "Push to web failed" >&2
66 # Switch to the "releases" branch, merge this change and tag it.
67 echo "Switching branches to do the release."
69 git merge
--no-ff
$branch
71 COMMIT
=$
(git rev-parse HEAD
)
72 echo "Tagging commit $COMMIT as version $VERSION"
73 git tag
-a
"v$VERSION" -m
"Release of version $VERSION"
76 echo "Release was successful!"
77 echo "Pushing the new version to dygraphs.com..."
78 .
/push-to-web.sh dygraphs.com
:dygraphs.com
81 echo "Don't forget to merge changes on this branch back into master:"
82 echo "git merge --no-ff $branch"
84 # Discourage users from working on the "releases" branch.