|
3 | 3 | set -euo pipefail
|
4 | 4 |
|
5 | 5 | if [ "$#" -ne 2 ]; then
|
6 |
| - echo "Must provide exactly two arguments." |
7 |
| - echo "First one must be the new version number." |
8 |
| - echo "Second one must be the minimum obsidian version for this release." |
9 |
| - echo "" |
10 |
| - echo "Example usage:" |
11 |
| - echo "./release.sh 0.3.0 0.11.13" |
12 |
| - echo "Exiting." |
13 |
| - |
| 6 | + echo "Usage: $0 <new-version> <minimum-obsidian-version>" |
14 | 7 | exit 1
|
15 | 8 | fi
|
16 | 9 |
|
17 |
| -if [[ $(git status --porcelain) ]]; then |
18 |
| - echo "Changes in the git repo." |
19 |
| - echo "Exiting." |
| 10 | +NEW_VERSION=$1 |
| 11 | +MINIMUM_OBSIDIAN_VERSION=$2 |
| 12 | +BRANCH_NAME="release/${NEW_VERSION}" |
20 | 13 |
|
| 14 | +# Ensure no uncommitted changes |
| 15 | +if [[ $(git status --porcelain) ]]; then |
| 16 | + echo "Uncommitted changes detected. Please commit or stash them before running the release script." |
21 | 17 | exit 1
|
22 | 18 | fi
|
23 | 19 |
|
24 |
| -NEW_VERSION=$1 |
25 |
| -MINIMUM_OBSIDIAN_VERSION=$2 |
| 20 | +echo "Preparing release ${NEW_VERSION} with minimum Obsidian version ${MINIMUM_OBSIDIAN_VERSION}" |
26 | 21 |
|
27 |
| -echo "Updating to version ${NEW_VERSION} with minimum obsidian version ${MINIMUM_OBSIDIAN_VERSION}" |
| 22 | +# Create and switch to a new branch |
| 23 | +git checkout -b "${BRANCH_NAME}" |
28 | 24 |
|
29 |
| -read -p "Continue? [y/N] " -n 1 -r |
30 |
| -echo |
31 |
| -if [[ $REPLY =~ ^[Yy]$ ]] |
32 |
| -then |
33 |
| - echo "Updating package.json" |
34 |
| - TEMP_FILE=$(mktemp) |
35 |
| - jq ".version |= \"${NEW_VERSION}\"" package.json > "$TEMP_FILE" || exit 1 |
36 |
| - mv "$TEMP_FILE" package.json |
| 25 | +# Update version in package.json |
| 26 | +echo "Updating package.json..." |
| 27 | +jq ".version = \"${NEW_VERSION}\"" package.json > package.json.tmp && mv package.json.tmp package.json |
37 | 28 |
|
38 |
| - echo "Updating package-lock.json" |
39 |
| - npm install |
| 29 | +# Update version in manifest.json |
| 30 | +echo "Updating manifest.json..." |
| 31 | +jq ".version = \"${NEW_VERSION}\" | .minAppVersion = \"${MINIMUM_OBSIDIAN_VERSION}\"" manifest.json > manifest.json.tmp && mv manifest.json.tmp manifest.json |
40 | 32 |
|
41 |
| - echo "Updating manifest.json" |
42 |
| - TEMP_FILE=$(mktemp) |
43 |
| - jq ".version |= \"${NEW_VERSION}\" | .minAppVersion |= \"${MINIMUM_OBSIDIAN_VERSION}\"" manifest.json > "$TEMP_FILE" || exit 1 |
44 |
| - mv "$TEMP_FILE" manifest.json |
| 33 | +# Update versions.json |
| 34 | +echo "Updating versions.json..." |
| 35 | +jq ". += {\"${NEW_VERSION}\": \"${MINIMUM_OBSIDIAN_VERSION}\"}" versions.json > versions.json.tmp && mv versions.json.tmp versions.json |
45 | 36 |
|
46 |
| - echo "Updating versions.json" |
47 |
| - TEMP_FILE=$(mktemp) |
48 |
| - jq ". += {\"${NEW_VERSION}\": \"${MINIMUM_OBSIDIAN_VERSION}\"}" versions.json > "$TEMP_FILE" || exit 1 |
49 |
| - mv "$TEMP_FILE" versions.json |
| 37 | +# Install dependencies to update package-lock.json |
| 38 | +echo "Updating package-lock.json..." |
| 39 | +npm install |
50 | 40 |
|
51 |
| - read -p "Create git commit, tag, and push? [y/N] " -n 1 -r |
52 |
| - echo |
53 |
| - if [[ $REPLY =~ ^[Yy]$ ]] |
54 |
| - then |
| 41 | +# Commit changes |
| 42 | +git add package.json package-lock.json manifest.json versions.json |
| 43 | +git commit -m "Release ${NEW_VERSION}" |
55 | 44 |
|
56 |
| - git add -A . |
57 |
| - git commit -m"Update to version ${NEW_VERSION}" |
58 |
| - git tag "${NEW_VERSION}" |
59 |
| - git push |
60 |
| - git push --tags |
61 |
| - fi |
62 |
| -else |
63 |
| - echo "Exiting." |
64 |
| - exit 1 |
65 |
| -fi |
| 45 | +# Push branch to remote |
| 46 | +git push --set-upstream origin "${BRANCH_NAME}" |
| 47 | + |
| 48 | +# Create a pull request |
| 49 | +echo "Creating a pull request..." |
| 50 | +gh pr create \ |
| 51 | + --title "Release ${NEW_VERSION}" \ |
| 52 | + --body "This pull request updates the version to ${NEW_VERSION} and sets the minimum Obsidian version to ${MINIMUM_OBSIDIAN_VERSION}." \ |
| 53 | + --base master \ |
| 54 | + --head "${BRANCH_NAME}" |
| 55 | + |
| 56 | +echo "Pull request created. Please review and merge it to trigger the release workflow." |
0 commit comments