5959 - name : Validate changeset files if found
6060 if : steps.check_changeset_files.outputs.files_exists == 'true'
6161 run : pnpm changeset status
62- - name : Package SAP Systems VSCode extension
63- if : steps.check_changeset_files.outputs.files_exists == 'true' && matrix.os == 'ubuntu-latest' && matrix.node-version == '20.x'
64- run : |
65- if grep -R "sap-ux-sap-systems-ext" .changeset/*.md >/dev/null 2>&1; then
66- echo "sap-systems-ext referenced in changeset. Packaging extension..."
67- pnpm --filter sap-ux-sap-systems-ext ide-ext:package
68- else
69- echo "sap-systems-ext not referenced in changeset. Skipping packaging."
70- fi
7162 - name : Cache playwright browsers
7263 id : cache-playwright-browsers
7364 uses : actions/cache@v4
@@ -196,12 +187,17 @@ jobs:
196187 node-version : 20.x
197188 - name : Install pnpm modules
198189 run : pnpm install --frozen-lockfile
199- - name : Replace placeholder with instrumentation key
190+ - name : Set instrumentation key in fiori-mcp-server
191+ uses : jacobtomlinson/gha-find-replace@v3
192+ with :
193+ include : packages/fiori-mcp-server/src/telemetry/index.ts
194+ find : ' ApplicationInsightsInstrumentationKeyPLACEH0LDER'
195+ replace : ${{ secrets.INSTRUMENTATION_KEY }}
196+ regex : false
197+ - name : Set instrumentation key in sap-systems-ext
200198 uses : jacobtomlinson/gha-find-replace@v3
201199 with :
202- include : |
203- packages/fiori-mcp-server/src/telemetry/index.ts
204- packages/sap-systems-ext/src/utils/telemetryHelper.ts
200+ include : packages/sap-systems-ext/src/utils/telemetryHelper.ts
205201 find : ' ApplicationInsightsInstrumentationKeyPLACEH0LDER'
206202 replace : ${{ secrets.INSTRUMENTATION_KEY }}
207203 regex : false
@@ -216,17 +212,42 @@ jobs:
216212 publish : pnpm ci:publish
217213 env :
218214 GITHUB_TOKEN : ${{ secrets.ACCESS_PAT }}
219- - name : Create GitHub Release (sap-systems-ext)
220- if : env.SAP_SYSTEMS_EXT_CHANGED == 'true'
215+ - name : Detect extension publication
216+ if : steps.changesetPublish.outputs.published == 'true'
217+ run : |
218+ PUBLISHED=$(echo '${{ steps.changesetPublish.outputs.publishedPackages }}' | jq -r '.[].name')
219+ # Extract the first package name matching sap-ux-*-ext
220+ EXT_PKG=$(echo "$PUBLISHED" | grep -E '^sap-ux-.*-ext$' | head -n 1 || true)
221+
222+ if [ -n "$EXT_PKG" ]; then
223+ echo "EXTENSION_UPDATED=true" >> $GITHUB_ENV
224+ echo "EXT_PKG=$EXT_PKG" >> $GITHUB_ENV
225+
226+ # Strip 'sap-ux-' prefix to derive directory name
227+ EXT_DIR_NAME=$(echo "$EXT_PKG" | sed 's/^sap-ux-//')
228+ echo "EXT_DIR=packages/${EXT_DIR_NAME}" >> $GITHUB_ENV
229+ else
230+ echo "EXTENSION_UPDATED=false" >> $GITHUB_ENV
231+ fi
232+ - name : Read extension version
233+ if : env.EXTENSION_UPDATED == 'true'
234+ run : |
235+ EXT_VERSION=$(jq -r '.version' "${{ env.EXT_DIR }}/package.json")
236+ echo "EXT_VERSION=$EXT_VERSION" >> $GITHUB_ENV
237+ - name : Package VSCode extension
238+ if : env.EXTENSION_UPDATED == 'true'
239+ run : pnpm --filter ${{ env.EXT_PKG }} ide-ext:package
240+ - name : Create GitHub Release (extension)
241+ if : env.EXTENSION_UPDATED == 'true'
221242 uses : softprops/action-gh-release@v1
222243 with :
223- tag_name : sap-systems-ext @${{ env.EXT_VERSION }}
224- name : sap-systems-ext v${{ env.EXT_VERSION }}
225- body : ' VSCode SAP Systems extension v${{ env.EXT_VERSION }} release. '
226- draft : false
244+ tag_name : ${{ env.EXT_PKG }} @${{ env.EXT_VERSION }}
245+ name : ${{ env.EXT_PKG }} v${{ env.EXT_VERSION }}
246+ body : ' Extension release: ${{ env.EXT_PKG }} v${{ env.EXT_VERSION }}'
247+ draft : true
227248 prerelease : false
228249 generate_release_notes : true
229- files : packages/sap-systems-ext /*.vsix
250+ files : ${{ env.EXT_DIR }} /*.vsix
230251 fail_on_unmatched_files : true
231252 env :
232253 GITHUB_TOKEN : ${{ secrets.ACCESS_PAT }}
@@ -240,9 +261,10 @@ jobs:
240261 echo "$(echo '${{ steps.changesetPublish.outputs.publishedPackages }}' | jq --raw-output 'map("*" + .name + "*" + " - " + "<https://www.npmjs.com/package/" + .name + "|" + .version + ">") | join("\\n")')" >> $GITHUB_ENV
241262 echo "$EOF" >> $GITHUB_ENV
242263 - name : Prepare Slack notification message (extension release only)
243- if : steps.changesetPublish.outputs.published != 'true' && env.SAP_SYSTEMS_EXT_CHANGED == 'true'
264+ if : env.EXTENSION_UPDATED == 'true'
244265 run : |
245- echo "EXT_RELEASE_MESSAGE=:package: VSCode SAP Systems extension v${{ env.EXT_VERSION }} released (private package)." >> $GITHUB_ENV
266+ RELEASE_URL="https://github.com/${{ github.repository }}/releases/tag/${{ env.EXT_PKG }}@${{ env.EXT_VERSION }}"
267+ echo "EXT_RELEASE_MESSAGE=:package: Extension *${{ env.EXT_PKG }}* v${{ env.EXT_VERSION }} released - <${RELEASE_URL}|View on GitHub>" >> $GITHUB_ENV
246268 - name : Send Slack notification (published packages)
247269 if : steps.changesetPublish.outputs.published == 'true'
248270@@ -252,7 +274,7 @@ jobs:
252274 env :
253275 SLACK_WEBHOOK_URL : ${{ secrets.SLACK_WEBHOOK_URL }}
254276 - name : Send Slack notification (extension release)
255- if : steps.changesetPublish.outputs.published != 'true' && env.SAP_SYSTEMS_EXT_CHANGED == 'true'
277+ if : env.EXTENSION_UPDATED == 'true'
256278257279 with :
258280 payload : |
0 commit comments