Skip to content

Commit

Permalink
Updates version to 9.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Adam-it authored and milanholemans committed Jul 11, 2024
1 parent d20a60e commit 16713b0
Show file tree
Hide file tree
Showing 3 changed files with 204 additions and 3 deletions.
201 changes: 201 additions & 0 deletions .github/workflows/release_v9.yml
Original file line number Diff line number Diff line change
@@ -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 }}
4 changes: 2 additions & 2 deletions npm-shrinkwrap.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@pnp/cli-microsoft365",
"version": "8.0.0",
"version": "9.0.0",
"description": "Manage Microsoft 365 and SharePoint Framework projects on any platform",
"license": "MIT",
"main": "./dist/api.js",
Expand Down

0 comments on commit 16713b0

Please sign in to comment.