|
30 | 30 | id: fetch-version |
31 | 31 | run: | |
32 | 32 | LATEST_GO_VERSION=$(curl -s https://go.dev/dl/\?mode\=json | jq -r '.[0].version') |
| 33 | + |
| 34 | + if [ -z "$LATEST_GO_VERSION" ] || [ "$LATEST_GO_VERSION" = "null" ]; then |
| 35 | + echo "Error: Failed to fetch latest Go version from go.dev" |
| 36 | + exit 1 |
| 37 | + fi |
| 38 | + |
33 | 39 | echo "Latest Go version from go.dev: $LATEST_GO_VERSION" |
34 | 40 | echo "version=$LATEST_GO_VERSION" >> $GITHUB_OUTPUT |
35 | 41 | |
|
45 | 51 | id: current-version |
46 | 52 | run: | |
47 | 53 | CURRENT_VERSION=$(sed -n 's/.*go_sdk\.download(version = \"\([^\"]*\)\".*/\1/p' MODULE.bazel) |
| 54 | + |
| 55 | + if [ -z "$CURRENT_VERSION" ]; then |
| 56 | + echo "Error: Could not extract Go version from MODULE.bazel" |
| 57 | + exit 1 |
| 58 | + fi |
| 59 | + |
48 | 60 | echo "Current Go version in MODULE.bazel: $CURRENT_VERSION" |
49 | 61 | echo "version=$CURRENT_VERSION" >> $GITHUB_OUTPUT |
50 | 62 | |
@@ -79,18 +91,34 @@ jobs: |
79 | 91 | |
80 | 92 | echo "Updating from $CURRENT_VERSION to $LATEST_VERSION_NUM" |
81 | 93 | |
| 94 | + # Escape dots in version strings for use in sed patterns |
| 95 | + CURRENT_VERSION_ESCAPED=$(echo "$CURRENT_VERSION" | sed 's/\./\\./g') |
| 96 | + LATEST_VERSION_NUM_ESCAPED=$(echo "$LATEST_VERSION_NUM" | sed 's/\./\\./g') |
| 97 | + CURRENT_MAJOR_MINOR_ESCAPED=$(echo "$CURRENT_MAJOR_MINOR" | sed 's/\./\\./g') |
| 98 | + LATEST_MAJOR_MINOR_ESCAPED=$(echo "$LATEST_MAJOR_MINOR" | sed 's/\./\\./g') |
| 99 | + |
82 | 100 | # Update MODULE.bazel |
83 | | - sed -i "s/go_sdk.download(version = \"$CURRENT_VERSION\")/go_sdk.download(version = \"$LATEST_VERSION_NUM\")/" MODULE.bazel |
| 101 | + if ! sed -i "s/go_sdk\.download(version = \"$CURRENT_VERSION_ESCAPED\")/go_sdk.download(version = \"$LATEST_VERSION_NUM\")/" MODULE.bazel; then |
| 102 | + echo "Warning: Failed to update MODULE.bazel" |
| 103 | + fi |
84 | 104 | |
85 | 105 | # Update go/extractor/go.mod |
86 | | - sed -i "s/^go $CURRENT_MAJOR_MINOR$/go $LATEST_MAJOR_MINOR/" go/extractor/go.mod |
87 | | - sed -i "s/^toolchain go$CURRENT_VERSION$/toolchain go$LATEST_VERSION_NUM/" go/extractor/go.mod |
| 106 | + if ! sed -i "s/^go $CURRENT_MAJOR_MINOR_ESCAPED\$/go $LATEST_MAJOR_MINOR/" go/extractor/go.mod; then |
| 107 | + echo "Warning: Failed to update go directive in go.mod" |
| 108 | + fi |
| 109 | + if ! sed -i "s/^toolchain go$CURRENT_VERSION_ESCAPED\$/toolchain go$LATEST_VERSION_NUM/" go/extractor/go.mod; then |
| 110 | + echo "Warning: Failed to update toolchain in go.mod" |
| 111 | + fi |
88 | 112 | |
89 | 113 | # Update go/extractor/autobuilder/build-environment.go |
90 | | - sed -i "s/var maxGoVersion = util.NewSemVer(\"$CURRENT_MAJOR_MINOR\")/var maxGoVersion = util.NewSemVer(\"$LATEST_MAJOR_MINOR\")/" go/extractor/autobuilder/build-environment.go |
| 114 | + if ! sed -i "s/var maxGoVersion = util\.NewSemVer(\"$CURRENT_MAJOR_MINOR_ESCAPED\")/var maxGoVersion = util.NewSemVer(\"$LATEST_MAJOR_MINOR\")/" go/extractor/autobuilder/build-environment.go; then |
| 115 | + echo "Warning: Failed to update build-environment.go" |
| 116 | + fi |
91 | 117 | |
92 | 118 | # Update go/actions/test/action.yml |
93 | | - sed -i "s/default: \"~$CURRENT_VERSION\"/default: \"~$LATEST_VERSION_NUM\"/" go/actions/test/action.yml |
| 119 | + if ! sed -i "s/default: \"~$CURRENT_VERSION_ESCAPED\"/default: \"~$LATEST_VERSION_NUM\"/" go/actions/test/action.yml; then |
| 120 | + echo "Warning: Failed to update action.yml" |
| 121 | + fi |
94 | 122 | |
95 | 123 | # Show what changed |
96 | 124 | git diff |
@@ -162,7 +190,7 @@ jobs: |
162 | 190 | - \`go/extractor/autobuilder/build-environment.go\` - maxGoVersion |
163 | 191 | - \`go/actions/test/action.yml\` - default go-test-version |
164 | 192 |
|
165 | | - This PR was automatically created by the [Go version update workflow](.github/workflows/go-version-update.yml). |
| 193 | + This PR was automatically created by the [Go version update workflow](https://github.com/${{ github.repository }}/blob/main/.github/workflows/go-version-update.yml). |
166 | 194 | EOF |
167 | 195 | ) |
168 | 196 | |
|
0 commit comments