|
1 | 1 | #!/bin/bash -e
|
2 | 2 |
|
| 3 | +# NOTE: Set an environment variable `CHANGELOG_GITHUB_TOKEN` by running the following command at the prompt, or by adding it to your shell profile (e.g., ~/.bash_profile or ~/.zshrc): |
| 4 | +# export CHANGELOG_GITHUB_TOKEN="«your-40-digit-github-token»" |
| 5 | + |
3 | 6 | # Release the project with the following steps:
|
4 | 7 | # 1. Update the release version in package.json.
|
5 | 8 | # 2. Update "CHANGELOG.md" using "github_changelog_generator-1.15.0.pre.rc".
|
6 | 9 | # 3. Commit package.json and CHANGELOG.md.
|
7 | 10 | # 4. Merge into master branch.
|
8 | 11 | # 5. Export unitypackage.
|
9 | 12 | # 6. Release using "gh-release-3.2.0". (Upload unitypackage)
|
10 |
| -UNITY_PATH=/Applications/Unity5.5.0p4/Unity5.5.0p4.app/Contents/MacOS/Unity |
11 | 13 |
|
12 | 14 |
|
13 |
| -# input version |
| 15 | +# input release version |
14 | 16 | PACKAGE_NAME=`node -pe 'require("./package.json").name'`
|
15 | 17 | echo Github Release: $PACKAGE_NAME
|
16 | 18 | read -p "[? release version (for example: 1.0.0): " RELEASE_VERSION
|
17 | 19 | [ -z "$RELEASE_VERSION" ] && exit
|
18 | 20 |
|
19 | 21 |
|
20 |
| -# update version |
| 22 | +# update version in package.json |
| 23 | +echo -e "\n>> Update version... package.json" |
21 | 24 | git checkout -B release develop
|
22 | 25 | sed -i -e "s/\"version\": \(.*\)/\"version\": \"${RELEASE_VERSION}\",/g" package.json
|
23 | 26 |
|
24 | 27 |
|
| 28 | +# check unity editor |
| 29 | +UNITY_VER=`sed -e "s/m_EditorVersion: \(.*\)/\1/g" ProjectSettings/ProjectVersion.txt` |
| 30 | +UNITY_EDITOR="/Applications/Unity/Hub/Editor/${UNITY_VER}/Unity.app/Contents/MacOS/Unity" |
| 31 | +echo -e "\n>> Check unity editor... ${UNITY_VER} (${UNITY_EDITOR})" |
| 32 | +"$UNITY_EDITOR" -quit -batchmode -projectPath "`pwd`" |
| 33 | +echo -e ">> OK" |
| 34 | + |
25 | 35 | # generate change log
|
| 36 | +echo -e "\n>> Generate change log..." |
26 | 37 | TAG=v$RELEASE_VERSION
|
27 | 38 | git tag $TAG
|
28 | 39 | git push --tags
|
29 | 40 | github_changelog_generator
|
30 | 41 | git tag -d $TAG
|
31 | 42 | git push --delete origin $TAG
|
32 | 43 |
|
33 |
| - |
34 | 44 | git diff -- CHANGELOG.md
|
35 |
| -read -p "[? continue? (y/N):" yn |
| 45 | +read -p "[? is the change log correct? (y/N):" yn |
36 | 46 | case "$yn" in [yY]*) ;; *) exit ;; esac
|
37 | 47 |
|
38 | 48 |
|
39 |
| -# commit files |
| 49 | +# export unitypackage |
| 50 | +PACKAGE_SRC=`node -pe 'require("./package.json").src'` |
| 51 | +echo -e "\n>> Export unitypackage... ${PACKAGE_SRC}" |
| 52 | +"$UNITY_EDITOR" -quit -batchmode -projectPath "`pwd`" -exportpackage "$PACKAGE_SRC" "$PACKAGE_NAME.unitypackage" |
| 53 | +echo -e ">> OK" |
| 54 | + |
| 55 | + |
| 56 | +# commit release files |
| 57 | +echo -e "\n>> Commit release files..." |
40 | 58 | git add CHANGELOG.md -f
|
41 | 59 | git add package.json -f
|
42 | 60 | git commit -m "update change log"
|
43 | 61 |
|
44 | 62 |
|
45 | 63 | # merge and push
|
| 64 | +echo -e "\n>> Merge and push..." |
46 | 65 | git checkout master
|
47 | 66 | git merge --no-ff release -m "release $TAG"
|
48 | 67 | git branch -D release
|
49 | 68 | git push origin master
|
| 69 | +git checkout develop |
| 70 | +git merge --ff master |
| 71 | +git push origin develop |
50 | 72 |
|
51 | 73 |
|
52 |
| -# export .unitypackage and release on Github |
53 |
| -PACKAGE_SRC=`node -pe 'require("./package.json").src'` |
54 |
| -$UNITY_PATH -quit -batchmode -projectPath "`pwd`" -exportpackage $PACKAGE_SRC $PACKAGE_NAME.unitypackage |
55 |
| -gh-release --draft --assets $PACKAGE_NAME.unitypackage |
| 74 | +# upload unitypackage and release on Github |
| 75 | +gh-release --assets "$PACKAGE_NAME.unitypackage" |
56 | 76 |
|
57 | 77 |
|
58 |
| -echo "\n\n$PACKAGE_NAME v$RELEASE_VERSION has been successfully released!\n" |
| 78 | +echo -e "\n\n>> $PACKAGE_NAME v$RELEASE_VERSION has been successfully released!\n" |
0 commit comments