From e16d09c8cb3cba3542f49bf69997a196664b09bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20W=C3=B3jcik?= Date: Sun, 7 Jul 2024 03:15:26 +0200 Subject: [PATCH 1/2] Updates version to 9.0.0 --- .github/workflows/release_v9.yml | 201 +++++++++++++++++++++++++++++++ npm-shrinkwrap.json | 4 +- package.json | 2 +- 3 files changed, 204 insertions(+), 3 deletions(-) create mode 100644 .github/workflows/release_v9.yml diff --git a/.github/workflows/release_v9.yml b/.github/workflows/release_v9.yml new file mode 100644 index 00000000000..4e7bc32c7d2 --- /dev/null +++ b/.github/workflows/release_v9.yml @@ -0,0 +1,201 @@ +name: Release v9 + +on: + push: + branches: [v9] + +jobs: + build: + if: github.repository_owner == 'pnp' + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + node: [20] + + steps: + - uses: actions/checkout@v4 + - name: Use Node.js ${{ matrix.node }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.node }} + registry-url: 'https://registry.npmjs.org' + - name: Cache node modules + id: cache + uses: actions/cache@v4 + with: + path: | + **/node_modules + key: node_modules-${{ matrix.os }}-${{ matrix.node }}-${{ hashFiles('**/npm-shrinkwrap.json') }} + - name: Restore dependencies + if: steps.cache.outputs.cache-hit != 'true' + run: npm ci + - name: Build + run: npm run build + - name: Compress output (non-Windows) + if: matrix.os != 'windows-latest' + run: tar -cvf build.tar --exclude node_modules ./ + - name: Compress output (Windows) + if: matrix.os == 'windows-latest' + run: 7z a -ttar -xr!node_modules -r build.tar . + - name: Upload build artifact + uses: actions/upload-artifact@v4 + with: + name: build-${{ matrix.os }}-${{ matrix.node }} + path: build.tar + test: + if: github.repository_owner == 'pnp' + needs: build + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest, ubuntu-latest] + # node versions to run tests on + nodeRun: [20] + # node version on which code was built and should be tested + nodeBuild: [20] + include: + - os: ubuntu-latest + nodeRun: 18 + nodeBuild: 20 + + steps: + - name: Configure pagefile + if: matrix.os == 'windows-latest' + uses: al-cheb/configure-pagefile-action@v1.4 + with: + minimum-size: 16GB + disk-root: "C:" + - uses: actions/download-artifact@v4 + with: + name: build-${{ matrix.os }}-${{ matrix.nodeBuild }} + - name: Unpack build artifact (non-Windows) + if: matrix.os != 'windows-latest' + run: tar -xvf build.tar && rm build.tar + - name: Unpack build artifact (Windows) + if: matrix.os == 'windows-latest' + run: 7z x build.tar && del build.tar + - name: Use Node.js ${{ matrix.nodeRun }} + uses: actions/setup-node@v4 + with: + node-version: ${{ matrix.nodeRun }} + registry-url: 'https://registry.npmjs.org' + - name: Cache node modules + id: cache + uses: actions/cache@v4 + with: + path: | + **/node_modules + key: node_modules-${{ matrix.os }}-${{ matrix.nodeBuild }}-${{ hashFiles('**/npm-shrinkwrap.json') }} + - name: Restore dependencies + if: steps.cache.outputs.cache-hit != 'true' + run: npm ci + - name: Test with coverage + # we run coverage only on Node that was used to build + if: matrix.nodeRun == matrix.nodeBuild + run: npm test + - name: Test without coverage + # we want to run tests on older Node versions to ensure that code works + if: matrix.nodeRun != matrix.nodeBuild + run: npm run test:test + - name: Compress output (non-Windows) + if: matrix.nodeRun == matrix.nodeBuild && matrix.os != 'windows-latest' && always() + run: tar -cvf coverage.tar coverage + - name: Compress output (Windows) + if: matrix.nodeRun == matrix.nodeBuild && matrix.os == 'windows-latest' && always() + run: 7z a -ttar -r coverage.tar coverage + - uses: actions/upload-artifact@v4 + if: matrix.nodeRun == matrix.nodeBuild && always() + with: + name: coverage-${{ matrix.os }}-${{ matrix.nodeRun }} + path: coverage.tar + + publish_v9: + if: github.repository_owner == 'pnp' + needs: test + runs-on: ubuntu-latest + permissions: + contents: read + id-token: write + + steps: + - uses: actions/download-artifact@v4 + with: + name: build-ubuntu-latest-20 + - name: Unpack build artifact + run: tar -xvf build.tar && rm build.tar + - name: Use Node.js 20 + uses: actions/setup-node@v4 + with: + node-version: 20 + registry-url: 'https://registry.npmjs.org' + - name: Cache node modules + id: cache + uses: actions/cache@v4 + with: + path: | + **/node_modules + key: node_modules-ubuntu-latest-20-${{ hashFiles('**/npm-shrinkwrap.json') }} + - name: Restore dependencies + if: steps.cache.outputs.cache-hit != 'true' + run: npm ci + - name: Stamp beta to package version + run: node scripts/update-package-version.js $GITHUB_SHA + - name: Publish @nine + run: npm publish --tag nine --access public --provenance + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }} + - name: Compress output + run: tar -cvf build.tar --exclude node_modules ./ + - name: Upload build artifact + uses: actions/upload-artifact@v4 + with: + name: build-ubuntu-latest-20 + path: build.tar + overwrite: true + + deploy_docker: + if: github.repository_owner == 'pnp' + needs: publish_v9 + runs-on: ubuntu-latest + + steps: + - uses: actions/download-artifact@v4 + with: + name: build-ubuntu-latest-20 + - name: Unpack build artifact + run: tar -xvf build.tar && rm build.tar + - name: Use Node.js 20 + uses: actions/setup-node@v4 + with: + node-version: 20 + registry-url: 'https://registry.npmjs.org' + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to DockerHub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + - name: Extract version from package + id: package_version + run: | + echo "version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT + - name: Wait for npm publish + run: node scripts/wait-npm-publish.js nine ${{ steps.package_version.outputs.version }} + - name: Build and push ${{ steps.package_version.outputs.version }} + uses: docker/build-push-action@v5 + with: + push: true + tags: m365pnp/cli-microsoft365:${{ steps.package_version.outputs.version }} + build-args: | + CLI_VERSION=${{ steps.package_version.outputs.version }} + - name: Build and push nine + uses: docker/build-push-action@v5 + with: + push: true + tags: m365pnp/cli-microsoft365:nine + build-args: | + CLI_VERSION=${{ steps.package_version.outputs.version }} \ No newline at end of file diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index cdb81de0b69..507b4f838e3 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -1,12 +1,12 @@ { "name": "@pnp/cli-microsoft365", - "version": "8.1.0", + "version": "9.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@pnp/cli-microsoft365", - "version": "8.1.0", + "version": "9.0.0", "license": "MIT", "dependencies": { "@azure/msal-common": "^14.11.0", diff --git a/package.json b/package.json index 538b0272a8b..0a606bdf07b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@pnp/cli-microsoft365", - "version": "8.1.0", + "version": "9.0.0", "description": "Manage Microsoft 365 and SharePoint Framework projects on any platform", "license": "MIT", "main": "./dist/api.js", From c961a324db383a1eac92b96b5f752e2446b11c5b Mon Sep 17 00:00:00 2001 From: Smita Nachan Date: Sun, 14 Jul 2024 09:35:53 +0000 Subject: [PATCH 2/2] Remove duplicate property --- docs/docs/cmd/teams/tab/tab-list.mdx | 9 +++---- src/m365/teams/commands/tab/tab-list.spec.ts | 26 +++++++------------- src/m365/teams/commands/tab/tab-list.ts | 6 +---- 3 files changed, 13 insertions(+), 28 deletions(-) diff --git a/docs/docs/cmd/teams/tab/tab-list.mdx b/docs/docs/cmd/teams/tab/tab-list.mdx index f0d8dbb6454..f723b98ca8e 100644 --- a/docs/docs/cmd/teams/tab/tab-list.mdx +++ b/docs/docs/cmd/teams/tab/tab-list.mdx @@ -67,8 +67,7 @@ m365 teams tab list --teamId 00000000-0000-0000-0000-000000000000 --channelId 19 "externalId": null, "displayName": "My Contoso Tab", "distributionMethod": "store" - }, - "teamsAppTabId": "1542629c-01b3-4a6d-8f76-1938b779e48d" + } } ] ``` @@ -79,15 +78,14 @@ m365 teams tab list --teamId 00000000-0000-0000-0000-000000000000 --channelId 19 ``` text displayName : My Contoso Tab id : 34991fbf-59f4-48d9-b094-b9d64d550e23 - teamsAppTabId: 1542629c-01b3-4a6d-8f76-1938b779e48d ``` ``` text - id,displayName,teamsAppTabId - 34991fbf-59f4-48d9-b094-b9d64d550e23,My Contoso Tab,1542629c-01b3-4a6d-8f76-1938b779e48d + id,displayName + 34991fbf-59f4-48d9-b094-b9d64d550e23,My Contoso Tab ``` @@ -105,7 +103,6 @@ m365 teams tab list --teamId 00000000-0000-0000-0000-000000000000 --channelId 19 id | 34991fbf-59f4-48d9-b094-b9d64d550e23 displayName | My Contoso Tab webUrl | https://teams.microsoft.com/l/entity/1542629c-01b3-4a6d-8f76-1938b779e48d/_djb2_msteams_prefix_34991fbf-59f4-48d9-b094-b9d64d550e23?webUrl=https%3a%2f%2fteams.contoso.ai%2fmsteams%2fcontent%2ftab%2fteam%3ftheme%3d%7btheme%7d&label=My%20Contoso%20Tab&context=%7b%0d%0a++%22canvasUrl%22%3a+%22https%3a%2f%2fteams.contoso.ai%2fmsteams%2fcontent%2ftab%2fteam%3ftheme%3d%7btheme%7d%22%2c%0d%0a++%22channelId%22%3a+%2219%3aB3nCnLKwwCoGDEADyUgQ5kJ5Pkekujyjmwxp7uhQeAE1%40thread.tacv2%22%2c%0d%0a++%22subEntityId%22%3a+null%0d%0a%7d&groupId=aee5a2c9-b1df-45ac-9964-c708e760a045&tenantId=92e59666-257b-49c3-b1fa-1bae8107f6ba - teamsAppTabId | 1542629c-01b3-4a6d-8f76-1938b779e48d ``` diff --git a/src/m365/teams/commands/tab/tab-list.spec.ts b/src/m365/teams/commands/tab/tab-list.spec.ts index 5b479165ca6..6fae4cf5cb3 100644 --- a/src/m365/teams/commands/tab/tab-list.spec.ts +++ b/src/m365/teams/commands/tab/tab-list.spec.ts @@ -75,7 +75,7 @@ describe(commands.TAB_LIST, () => { }); it('defines correct properties for the default output', () => { - assert.deepStrictEqual(command.defaultProperties(), ['id', 'displayName', 'teamsAppTabId']); + assert.deepStrictEqual(command.defaultProperties(), ['id', 'displayName']); }); it('fails validation for a incorrect channelId missing leading 19:.', async () => { @@ -193,8 +193,7 @@ describe(commands.TAB_LIST, () => { "externalId": null, "displayName": "Document Library", "distributionMethod": "store" - }, - "teamsAppTabId": "com.microsoft.teamspace.tab.files.sharepoint" + } }, { "id": "ba38f554-9ce6-4719-bc9b-e38e4ca16860", @@ -212,8 +211,7 @@ describe(commands.TAB_LIST, () => { "externalId": null, "displayName": "Website", "distributionMethod": "store" - }, - "teamsAppTabId": "com.microsoft.teamspace.tab.web" + } }, { "id": "b6c511f1-3ad7-4111-8a82-36b13aad4c9e", @@ -230,8 +228,7 @@ describe(commands.TAB_LIST, () => { "externalId": null, "displayName": "Word", "distributionMethod": "store" - }, - "teamsAppTabId": "com.microsoft.teamspace.tab.file.staticviewer.word" + } }, { "id": "d9e972d8-e93d-4b87-beb2-3698912398ea", @@ -251,8 +248,7 @@ describe(commands.TAB_LIST, () => { "externalId": null, "displayName": "Wiki", "distributionMethod": "store" - }, - "teamsAppTabId": "com.microsoft.teamspace.tab.wiki" + } }])); }); @@ -282,8 +278,7 @@ describe(commands.TAB_LIST, () => { "externalId": null, "displayName": "Document Library", "distributionMethod": "store" - }, - "teamsAppTabId": "com.microsoft.teamspace.tab.files.sharepoint" + } }, { "id": "ba38f554-9ce6-4719-bc9b-e38e4ca16860", @@ -301,8 +296,7 @@ describe(commands.TAB_LIST, () => { "externalId": null, "displayName": "Website", "distributionMethod": "store" - }, - "teamsAppTabId": "com.microsoft.teamspace.tab.web" + } }, { "id": "b6c511f1-3ad7-4111-8a82-36b13aad4c9e", @@ -319,8 +313,7 @@ describe(commands.TAB_LIST, () => { "externalId": null, "displayName": "Word", "distributionMethod": "store" - }, - "teamsAppTabId": "com.microsoft.teamspace.tab.file.staticviewer.word" + } }, { "id": "d9e972d8-e93d-4b87-beb2-3698912398ea", @@ -340,8 +333,7 @@ describe(commands.TAB_LIST, () => { "externalId": null, "displayName": "Wiki", "distributionMethod": "store" - }, - "teamsAppTabId": "com.microsoft.teamspace.tab.wiki" + } }])); }); }); diff --git a/src/m365/teams/commands/tab/tab-list.ts b/src/m365/teams/commands/tab/tab-list.ts index 65f8fad55e7..1f43e837490 100644 --- a/src/m365/teams/commands/tab/tab-list.ts +++ b/src/m365/teams/commands/tab/tab-list.ts @@ -26,7 +26,7 @@ class TeamsTabListCommand extends GraphCommand { } public defaultProperties(): string[] | undefined { - return ['id', 'displayName', 'teamsAppTabId']; + return ['id', 'displayName']; } constructor() { @@ -68,10 +68,6 @@ class TeamsTabListCommand extends GraphCommand { try { const items = await odata.getAllItems(endpoint); - items.forEach(i => { - (i as any).teamsAppTabId = i.teamsApp!.id; - }); - await logger.log(items); } catch (err: any) {