2020 base_url : ${{ steps.resolve.outputs.base_url }}
2121 bucket : ${{ steps.resolve.outputs.bucket }}
2222 version : ${{ steps.resolve.outputs.version }}
23+ binary_name : ${{ steps.resolve.outputs.binary_name }}
2324 steps :
2425 - name : Resolve environment from tag
2526 id : resolve
@@ -29,10 +30,12 @@ jobs:
2930 echo "environment=prod" >> "$GITHUB_OUTPUT"
3031 echo "base_url=https://deepsource.com/cli" >> "$GITHUB_OUTPUT"
3132 echo "bucket=${{ secrets.R2_PROD_BUCKET_NAME }}" >> "$GITHUB_OUTPUT"
33+ echo "binary_name=deepsource" >> "$GITHUB_OUTPUT"
3234 else
3335 echo "environment=dev" >> "$GITHUB_OUTPUT"
3436 echo "base_url=https://deepsource.one/cli" >> "$GITHUB_OUTPUT"
3537 echo "bucket=${{ secrets.R2_DEV_BUCKET_NAME }}" >> "$GITHUB_OUTPUT"
38+ echo "binary_name=deepsource-dev" >> "$GITHUB_OUTPUT"
3639 fi
3740 echo "version=${TAG}" >> "$GITHUB_OUTPUT"
3841
5861 if : matrix.goarch == 'arm64'
5962 run : sudo apt-get update && sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
6063
61- - name : Generate completions
62- run : bash scripts/gen-completions.sh
63-
6464 - name : Build
6565 env :
6666 CGO_ENABLED : ' 1'
@@ -69,23 +69,25 @@ jobs:
6969 CC : ${{ matrix.cc }}
7070 CXX : ${{ matrix.cxx }}
7171 run : |
72+ BINARY_NAME="${{ needs.resolve-env.outputs.binary_name }}"
7273 cd cmd/deepsource && go build -tags static_all \
73- -ldflags "-X 'main.version=${{ needs.resolve-env.outputs.version }}' -X 'main.Date=$(date -u +%Y-%m-%d)' -X 'main.SentryDSN=${{ secrets.SENTRY_DSN }}'" \
74- -o deepsource .
74+ -ldflags "-X 'main.version=${{ needs.resolve-env.outputs.version }}' -X 'main.Date=$(date -u +%Y-%m-%d)' -X 'main.SentryDSN=${{ secrets.SENTRY_DSN }}' -X 'main.buildMode=${{ needs.resolve-env.outputs.environment }}' " \
75+ -o "$BINARY_NAME" .
7576
7677 - name : Package
7778 run : |
78- ARCHIVE="deepsource_${{ needs.resolve-env.outputs.version }}_linux_${{ matrix.goarch }}.tar.gz"
79- tar -czf "$ARCHIVE" -C cmd/deepsource deepsource -C ../../ completions
79+ BINARY_NAME="${{ needs.resolve-env.outputs.binary_name }}"
80+ ARCHIVE="${BINARY_NAME}_${{ needs.resolve-env.outputs.version }}_linux_${{ matrix.goarch }}.tar.gz"
81+ tar -czf "$ARCHIVE" -C cmd/deepsource "$BINARY_NAME"
8082 sha256sum "$ARCHIVE" > "${ARCHIVE}.sha256"
8183 echo "ARCHIVE=${ARCHIVE}" >> "$GITHUB_ENV"
8284
8385 - uses : actions/upload-artifact@v4
8486 with :
8587 name : build-linux-${{ matrix.goarch }}
8688 path : |
87- deepsource_ *.tar.gz
88- deepsource_ *.tar.gz.sha256
89+ ${{ needs.resolve-env.outputs.binary_name }}_ *.tar.gz
90+ ${{ needs.resolve-env.outputs.binary_name }}_ *.tar.gz.sha256
8991
9092 build-darwin :
9193 needs : resolve-env
@@ -99,18 +101,16 @@ jobs:
99101 with :
100102 go-version : ${{ env.GO_VERSION }}
101103
102- - name : Generate completions
103- run : bash scripts/gen-completions.sh
104-
105104 - name : Build
106105 env :
107106 CGO_ENABLED : ' 1'
108107 GOOS : darwin
109108 GOARCH : ${{ matrix.goarch }}
110109 run : |
110+ BINARY_NAME="${{ needs.resolve-env.outputs.binary_name }}"
111111 cd cmd/deepsource && go build -tags static_all \
112- -ldflags "-X 'main.version=${{ needs.resolve-env.outputs.version }}' -X 'main.Date=$(date -u +%Y-%m-%d)' -X 'main.SentryDSN=${{ secrets.SENTRY_DSN }}'" \
113- -o deepsource .
112+ -ldflags "-X 'main.version=${{ needs.resolve-env.outputs.version }}' -X 'main.Date=$(date -u +%Y-%m-%d)' -X 'main.SentryDSN=${{ secrets.SENTRY_DSN }}' -X 'main.buildMode=${{ needs.resolve-env.outputs.environment }}' " \
113+ -o "$BINARY_NAME" .
114114
115115 - name : Codesign
116116 env :
@@ -131,19 +131,23 @@ jobs:
131131 security set-key-partition-list -S apple-tool:,apple: -k "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
132132 security list-keychains -d user -s "$KEYCHAIN_PATH" login.keychain
133133
134+ BINARY_NAME="${{ needs.resolve-env.outputs.binary_name }}"
135+
134136 # Sign the binary
135137 codesign --force --options runtime \
136138 --sign "Developer ID Application: DeepSource Corp" \
137- cmd/deepsource/deepsource
139+ " cmd/deepsource/${BINARY_NAME}"
138140
139141 - name : Notarize
140142 env :
141143 APPLE_ID : ${{ secrets.APPLE_ID }}
142144 APPLE_TEAM_ID : ${{ secrets.APPLE_TEAM_ID }}
143145 APPLE_APP_PASSWORD : ${{ secrets.APPLE_APP_PASSWORD }}
144146 run : |
147+ BINARY_NAME="${{ needs.resolve-env.outputs.binary_name }}"
148+
145149 # Create zip for notarization
146- ditto -c -k cmd/deepsource/deepsource notarize.zip
150+ ditto -c -k " cmd/deepsource/${BINARY_NAME}" notarize.zip
147151 xcrun notarytool submit notarize.zip \
148152 --apple-id "$APPLE_ID" \
149153 --team-id "$APPLE_TEAM_ID" \
@@ -152,21 +156,23 @@ jobs:
152156
153157 - name : Verify signing
154158 run : |
155- codesign --verify --verbose cmd/deepsource/deepsource
156- spctl --assess --type execute cmd/deepsource/deepsource || true
159+ BINARY_NAME="${{ needs.resolve-env.outputs.binary_name }}"
160+ codesign --verify --verbose "cmd/deepsource/${BINARY_NAME}"
161+ spctl --assess --type execute "cmd/deepsource/${BINARY_NAME}" || true
157162
158163 - name : Package
159164 run : |
160- ARCHIVE="deepsource_${{ needs.resolve-env.outputs.version }}_darwin_${{ matrix.goarch }}.tar.gz"
161- tar -czf "$ARCHIVE" -C cmd/deepsource deepsource -C ../../ completions
165+ BINARY_NAME="${{ needs.resolve-env.outputs.binary_name }}"
166+ ARCHIVE="${BINARY_NAME}_${{ needs.resolve-env.outputs.version }}_darwin_${{ matrix.goarch }}.tar.gz"
167+ tar -czf "$ARCHIVE" -C cmd/deepsource "$BINARY_NAME"
162168 shasum -a 256 "$ARCHIVE" > "${ARCHIVE}.sha256"
163169
164170 - uses : actions/upload-artifact@v4
165171 with :
166172 name : build-darwin-${{ matrix.goarch }}
167173 path : |
168- deepsource_ *.tar.gz
169- deepsource_ *.tar.gz.sha256
174+ ${{ needs.resolve-env.outputs.binary_name }}_ *.tar.gz
175+ ${{ needs.resolve-env.outputs.binary_name }}_ *.tar.gz.sha256
170176
171177 build-windows :
172178 needs : resolve-env
@@ -188,22 +194,24 @@ jobs:
188194 CC : x86_64-w64-mingw32-gcc
189195 CXX : x86_64-w64-mingw32-g++
190196 run : |
197+ BINARY_NAME="${{ needs.resolve-env.outputs.binary_name }}"
191198 cd cmd/deepsource && go build -tags static_all \
192- -ldflags "-X 'main.version=${{ needs.resolve-env.outputs.version }}' -X 'main.Date=$(date -u +%Y-%m-%d)' -X 'main.SentryDSN=${{ secrets.SENTRY_DSN }}'" \
193- -o deepsource .exe .
199+ -ldflags "-X 'main.version=${{ needs.resolve-env.outputs.version }}' -X 'main.Date=$(date -u +%Y-%m-%d)' -X 'main.SentryDSN=${{ secrets.SENTRY_DSN }}' -X 'main.buildMode=${{ needs.resolve-env.outputs.environment }}' " \
200+ -o "${BINARY_NAME} .exe" .
194201
195202 - name : Package
196203 run : |
197- ARCHIVE="deepsource_${{ needs.resolve-env.outputs.version }}_windows_amd64.zip"
198- zip "$ARCHIVE" -j cmd/deepsource/deepsource.exe
204+ BINARY_NAME="${{ needs.resolve-env.outputs.binary_name }}"
205+ ARCHIVE="${BINARY_NAME}_${{ needs.resolve-env.outputs.version }}_windows_amd64.zip"
206+ zip "$ARCHIVE" -j "cmd/deepsource/${BINARY_NAME}.exe"
199207 sha256sum "$ARCHIVE" > "${ARCHIVE}.sha256"
200208
201209 - uses : actions/upload-artifact@v4
202210 with :
203211 name : build-windows-amd64
204212 path : |
205- deepsource_ *.zip
206- deepsource_ *.zip.sha256
213+ ${{ needs.resolve-env.outputs.binary_name }}_ *.zip
214+ ${{ needs.resolve-env.outputs.binary_name }}_ *.zip.sha256
207215
208216 deploy :
209217 needs : [resolve-env, build-linux, build-darwin, build-windows]
@@ -219,6 +227,7 @@ jobs:
219227 - name : Generate manifest
220228 run : |
221229 VERSION="${{ needs.resolve-env.outputs.version }}"
230+ BINARY_NAME="${{ needs.resolve-env.outputs.binary_name }}"
222231 BUILD_TIME="$(date -u +%Y-%m-%dT%H:%M:%SZ)"
223232
224233 get_sha() {
@@ -231,32 +240,33 @@ jobs:
231240 "buildTime": "${BUILD_TIME}",
232241 "platforms": {
233242 "darwin_amd64": {
234- "archive": "deepsource_ ${VERSION}_darwin_amd64.tar.gz",
235- "sha256": "$(get_sha "deepsource_ ${VERSION}_darwin_amd64.tar.gz")"
243+ "archive": "${BINARY_NAME}_ ${VERSION}_darwin_amd64.tar.gz",
244+ "sha256": "$(get_sha "${BINARY_NAME}_ ${VERSION}_darwin_amd64.tar.gz")"
236245 },
237246 "darwin_arm64": {
238- "archive": "deepsource_ ${VERSION}_darwin_arm64.tar.gz",
239- "sha256": "$(get_sha "deepsource_ ${VERSION}_darwin_arm64.tar.gz")"
247+ "archive": "${BINARY_NAME}_ ${VERSION}_darwin_arm64.tar.gz",
248+ "sha256": "$(get_sha "${BINARY_NAME}_ ${VERSION}_darwin_arm64.tar.gz")"
240249 },
241250 "linux_amd64": {
242- "archive": "deepsource_ ${VERSION}_linux_amd64.tar.gz",
243- "sha256": "$(get_sha "deepsource_ ${VERSION}_linux_amd64.tar.gz")"
251+ "archive": "${BINARY_NAME}_ ${VERSION}_linux_amd64.tar.gz",
252+ "sha256": "$(get_sha "${BINARY_NAME}_ ${VERSION}_linux_amd64.tar.gz")"
244253 },
245254 "linux_arm64": {
246- "archive": "deepsource_ ${VERSION}_linux_arm64.tar.gz",
247- "sha256": "$(get_sha "deepsource_ ${VERSION}_linux_arm64.tar.gz")"
255+ "archive": "${BINARY_NAME}_ ${VERSION}_linux_arm64.tar.gz",
256+ "sha256": "$(get_sha "${BINARY_NAME}_ ${VERSION}_linux_arm64.tar.gz")"
248257 },
249258 "windows_amd64": {
250- "archive": "deepsource_ ${VERSION}_windows_amd64.zip",
251- "sha256": "$(get_sha "deepsource_ ${VERSION}_windows_amd64.zip")"
259+ "archive": "${BINARY_NAME}_ ${VERSION}_windows_amd64.zip",
260+ "sha256": "$(get_sha "${BINARY_NAME}_ ${VERSION}_windows_amd64.zip")"
252261 }
253262 }
254263 }
255264 EOF
256265
257266 - name : Generate install script
258267 run : |
259- sed "s|__BASE_URL__|${{ needs.resolve-env.outputs.base_url }}|g" \
268+ sed -e "s|__BASE_URL__|${{ needs.resolve-env.outputs.base_url }}|g" \
269+ -e "s|__BINARY_NAME__|${{ needs.resolve-env.outputs.binary_name }}|g" \
260270 scripts/install.sh.template > artifacts/install.sh
261271
262272 - name : Upload to R2
@@ -269,7 +279,7 @@ jobs:
269279 BUCKET="${{ needs.resolve-env.outputs.bucket }}"
270280
271281 # Upload archives and checksums (immutable)
272- for f in artifacts/deepsource_ *; do
282+ for f in artifacts/${{ needs.resolve-env.outputs.binary_name }}_ *; do
273283 aws s3 cp "$f" "s3://${BUCKET}/cli/build/$(basename "$f")" \
274284 --endpoint-url "$ENDPOINT" \
275285 --cache-control "public, max-age=31536000, immutable"
@@ -333,9 +343,6 @@ jobs:
333343
334344 def install
335345 bin.install "deepsource"
336- bash_completion.install "completions/deepsource.bash" => "deepsource"
337- zsh_completion.install "completions/deepsource.zsh" => "_deepsource"
338- fish_completion.install "completions/deepsource.fish"
339346 end
340347 end
341348 FORMULA
0 commit comments