Skip to content

Commit f6156da

Browse files
hayemaxijustinmk3
andauthored
feat(ci): support newChange, createRelease/changelogs, pre-release changelogs for multiple ext (#4701)
* feat(ci): support newChange, createRelease/changelogs, pre-release changelogs for multiple ext - Pre-releases on GitHub with both extension artifacts will now have both recent changelogs in the description. - newChange and createRelease work on the individual extensions now, and must be accessed with e.g. -w packages/toolkit instead of running at root. - Release pipeline will call the target extension's createRelease script. TODO: - When we release, the "latest" will just refer the last extension that was released. Maybe we should have custom tags if possible. * add migration newChange, createRelease to root npm scripts * add comment * unneeded var * Update .github/workflows/release.yml Co-authored-by: Justin M. Keyes <[email protected]> --------- Co-authored-by: Justin M. Keyes <[email protected]>
1 parent ace3cbc commit f6156da

File tree

139 files changed

+36
-26
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

139 files changed

+36
-26
lines changed

.github/workflows/release.yml

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,9 @@ jobs:
4949
echo "FEAT_NAME=" >> $GITHUB_ENV
5050
echo "TAG_NAME=prerelease" >> $GITHUB_ENV
5151
- run: npm ci
52-
- name: vsix # TODO: For packages/toolkit release only
52+
- name: vsix
5353
run: |
54-
npm run createRelease # Generate CHANGELOG.md
54+
npm run createRelease -w packages/toolkit -w packages/amazonq # Generate CHANGELOG.md
5555
npm run -w packages/toolkit package -- --feature "$FEAT_NAME"
5656
npm run -w packages/amazonq package -- --feature "$FEAT_NAME"
5757
- uses: actions/upload-artifact@v4
@@ -62,11 +62,18 @@ jobs:
6262
- name: Export outputs
6363
id: build
6464
run: |
65+
write_package_info() {
66+
PKG_NAME=$1
67+
PKG_DISPLAY_NAME=$(grep -m 1 displayName packages/${PKG_NAME}/package.json | grep -o '[a-zA-z][^\"]\+' | tail -n1)
68+
echo "version=$(grep -m 1 version packages/${PKG_NAME}/package.json | grep -o '[0-9][^\"]\+' | sed 's/-SNAPSHOT//')" >> $GITHUB_OUTPUT
69+
echo "${PKG_NAME}_changes<<EOF" >> $GITHUB_OUTPUT
70+
# Add extension display name to the topmost changelog section.
71+
cat packages/${PKG_NAME}/CHANGELOG.md | perl -ne 'BEGIN{$/="\n\n"} print; exit if $. == 2' | sed -e "1 s/## /## ${PKG_DISPLAY_NAME} - /" >> $GITHUB_OUTPUT
72+
}
6573
echo "feature=$FEAT_NAME" >> $GITHUB_OUTPUT
6674
echo "tagname=$TAG_NAME" >> $GITHUB_OUTPUT
67-
echo "version=$(grep -m 1 version packages/toolkit/package.json | grep -o '[0-9][^\"]\+' | sed 's/-SNAPSHOT//')" >> $GITHUB_OUTPUT
68-
echo 'changes<<EOF' >> $GITHUB_OUTPUT
69-
cat CHANGELOG.md | perl -ne 'BEGIN{$/="\n\n"} print; exit if $. == 2' >> $GITHUB_OUTPUT
75+
write_package_info toolkit
76+
write_package_info amazonq
7077
echo 'EOF' >> $GITHUB_OUTPUT
7178
7279
publish:
@@ -83,7 +90,8 @@ jobs:
8390
# Used in release_notes.md
8491
BRANCH: ${{ github.ref_name }}
8592
# Used in release_notes.md
86-
AWS_TOOLKIT_CHANGES: ${{ needs.package.outputs.changes }}
93+
AWS_TOOLKIT_CHANGES: ${{ needs.package.outputs.toolkit_changes }}
94+
AMAZON_Q_CHANGES: ${{ needs.package.outputs.amazonq_changes }}
8795
permissions:
8896
contents: write
8997
steps:

.github/workflows/release_notes.md

Lines changed: 4 additions & 1 deletion

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ packages/core/src/testFixtures/**/bin
3838
packages/core/src/testFixtures/**/obj
3939

4040
# Generated by copyFiles.ts
41-
packages/*/CHANGELOG.md
4241
packages/*/LICENSE
4342
packages/*/NOTICE
4443
packages/toolkit/package.nls.json

buildspec/packageTestVsix.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ phases:
2626
commands:
2727
- export HOME=/home/codebuild-user
2828
# Generate CHANGELOG.md
29-
- npm run createRelease
29+
- npm run createRelease -w packages/toolkit -w packages/amazonq
3030
- npm run package -w packages/toolkit -w packages/amazonq
3131

3232
artifacts:

buildspec/release/10changeversion.yml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,8 @@ phases:
2626
npm version --no-git-tag-version "$VERSION" -w packages/${TARGET_EXTENSION}
2727
# Call npm ci because 'createRelease' uses ts-node
2828
npm ci
29-
# TODO: fix createRelease (generates CHANGELOG) for "amazonq".
3029
- |
31-
echo "$CODEBUILD_WEBHOOK_HEAD_REF" | >/dev/null grep master && npm run createRelease || true
30+
npm run createRelease -w packages/${TARGET_EXTENSION}
3231
- |
3332
git add packages/${TARGET_EXTENSION}/package.json
3433
git add package-lock.json

docs/arch_develop.md

Lines changed: 1 addition & 1 deletion

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@
3030
"testE2E": "npm run testE2E -w packages/ --if-present",
3131
"testInteg": "npm run testInteg -w packages/ --if-present",
3232
"package": "npm run package -w packages/toolkit",
33-
"newChange": "ts-node ./scripts/newChange.ts",
34-
"createRelease": "ts-node ./scripts/createRelease.ts",
33+
"newChange": "echo 'Must specify subproject/workspace with -w packages/<subproject>' && false",
34+
"createRelease": "echo 'Must specify subproject/workspace with -w packages/<subproject>' && false",
3535
"format": "prettier --check plugins && npm run format -w packages/ --if-present",
3636
"formatfix": "prettier --write plugins && npm run formatfix -w packages/ --if-present",
3737
"lint": "npm run lint -w packages/ --if-present && npm run format",

packages/.vscodeignore.packages

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
!package.json
2121
!package.nls.json
2222

23-
# Automatically copied from root project directory
2423
!quickStart**
2524
!README.**
2625
!CHANGELOG.md

packages/amazonq/CHANGELOG.md

packages/amazonq/package.json

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,16 @@
2727
"generateNonCodeFiles": "ts-node ../../scripts/generateNonCodeFiles.ts",
2828
"copyFiles": "ts-node ./scripts/build/copyFiles.ts",
2929
"syncPackageJson": "ts-node ./scripts/build/syncPackageJson.ts",
30-
"clean": "ts-node ../../scripts/clean.ts dist/ LICENSE NOTICE CHANGELOG.md",
30+
"clean": "ts-node ../../scripts/clean.ts dist/ LICENSE NOTICE",
3131
"compile": "npm run clean && npm run buildScripts && webpack --mode development",
3232
"package": "ts-node ../../scripts/package.ts",
3333
"format": "prettier --ignore-path ../../.prettierignore --check src scripts",
3434
"formatfix": "prettier --ignore-path ../../.prettierignore --write src scripts",
3535
"lint": "echo 'Nothing to lint yet!'",
3636
"watch": "npm run clean && npm run buildScripts -- --vueHr && tsc -watch -p ./",
37-
"serve": "webpack serve --config-name mainServe --mode development"
37+
"serve": "webpack serve --config-name mainServe --mode development",
38+
"newChange": "ts-node ../../scripts/newChange.ts",
39+
"createRelease": "ts-node ../../scripts/createRelease.ts"
3840
},
3941
"dependencies": {
4042
"aws-core-vscode": "file:../core/"

0 commit comments

Comments
 (0)