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
@@ -216,17 +207,42 @@ jobs:
216207 publish : pnpm ci:publish
217208 env :
218209 GITHUB_TOKEN : ${{ secrets.ACCESS_PAT }}
219- - name : Create GitHub Release (sap-systems-ext)
220- if : env.SAP_SYSTEMS_EXT_CHANGED == 'true'
210+ - name : Detect extension publication
211+ if : steps.changesetPublish.outputs.published == 'true'
212+ run : |
213+ PUBLISHED=$(echo '${{ steps.changesetPublish.outputs.publishedPackages }}' | jq -r '.[].name')
214+ # Extract the first package name matching sap-ux-*-ext
215+ EXT_PKG=$(echo "$PUBLISHED" | grep -E '^sap-ux-.*-ext$' | head -n 1 || true)
216+
217+ if [ -n "$EXT_PKG" ]; then
218+ echo "EXTENSION_UPDATED=true" >> $GITHUB_ENV
219+ echo "EXT_PKG=$EXT_PKG" >> $GITHUB_ENV
220+
221+ # Strip 'sap-ux-' prefix to derive directory name
222+ EXT_DIR_NAME=$(echo "$EXT_PKG" | sed 's/^sap-ux-//')
223+ echo "EXT_DIR=packages/${EXT_DIR_NAME}" >> $GITHUB_ENV
224+ else
225+ echo "EXTENSION_UPDATED=false" >> $GITHUB_ENV
226+ fi
227+ - name : Read extension version
228+ if : env.EXTENSION_UPDATED == 'true'
229+ run : |
230+ EXT_VERSION=$(jq -r '.version' "${{ env.EXT_DIR }}/package.json")
231+ echo "EXT_VERSION=$EXT_VERSION" >> $GITHUB_ENV
232+ - name : Package VSCode extension
233+ if : env.EXTENSION_UPDATED == 'true'
234+ run : pnpm --filter ${{ env.EXT_PKG }} ide-ext:package
235+ - name : Create GitHub Release (extension)
236+ if : env.EXTENSION_UPDATED == 'true'
221237 uses : softprops/action-gh-release@v1
222238 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
239+ tag_name : ${{ env.EXT_PKG }} @${{ env.EXT_VERSION }}
240+ name : ${{ env.EXT_PKG }} v${{ env.EXT_VERSION }}
241+ body : ' Extension release: ${{ env.EXT_PKG }} v${{ env.EXT_VERSION }}'
242+ draft : true
227243 prerelease : false
228244 generate_release_notes : true
229- files : packages/sap-systems-ext /*.vsix
245+ files : ${{ env.EXT_DIR }} /*.vsix
230246 fail_on_unmatched_files : true
231247 env :
232248 GITHUB_TOKEN : ${{ secrets.ACCESS_PAT }}
@@ -240,9 +256,10 @@ jobs:
240256 echo "$(echo '${{ steps.changesetPublish.outputs.publishedPackages }}' | jq --raw-output 'map("*" + .name + "*" + " - " + "<https://www.npmjs.com/package/" + .name + "|" + .version + ">") | join("\\n")')" >> $GITHUB_ENV
241257 echo "$EOF" >> $GITHUB_ENV
242258 - name : Prepare Slack notification message (extension release only)
243- if : steps.changesetPublish.outputs.published != 'true' && env.SAP_SYSTEMS_EXT_CHANGED == 'true'
259+ if : env.EXTENSION_UPDATED == 'true'
244260 run : |
245- echo "EXT_RELEASE_MESSAGE=:package: VSCode SAP Systems extension v${{ env.EXT_VERSION }} released (private package)." >> $GITHUB_ENV
261+ RELEASE_URL="https://github.com/${{ github.repository }}/releases/tag/${{ env.EXT_PKG }}@${{ env.EXT_VERSION }}"
262+ echo "EXT_RELEASE_MESSAGE=:package: Extension *${{ env.EXT_PKG }}* v${{ env.EXT_VERSION }} released - <${RELEASE_URL}|View on GitHub>" >> $GITHUB_ENV
246263 - name : Send Slack notification (published packages)
247264 if : steps.changesetPublish.outputs.published == 'true'
248265 uses : slackapi/slack-github-action@v1.26.0
@@ -252,7 +269,7 @@ jobs:
252269 env :
253270 SLACK_WEBHOOK_URL : ${{ secrets.SLACK_WEBHOOK_URL }}
254271 - name : Send Slack notification (extension release)
255- if : steps.changesetPublish.outputs.published != 'true' && env.SAP_SYSTEMS_EXT_CHANGED == 'true'
272+ if : env.EXTENSION_UPDATED == 'true'
256273 uses : slackapi/slack-github-action@v1.26.0
257274 with :
258275 payload : |
0 commit comments