Skip to content

Commit

Permalink
Merge branch 'release/0.1.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
Franck Cornu committed Nov 29, 2023
2 parents 9f5699e + 5a1b5af commit 0b6ca15
Show file tree
Hide file tree
Showing 337 changed files with 73,727 additions and 0 deletions.
132 changes: 132 additions & 0 deletions .github/workflows/deploy-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
name: Deploy documentation
env:
ENV_AzDeployAppId: ${{ secrets.ENV_AzDeployAppId }}
ENV_AzDeployAppCertificateValue: ${{ secrets.ENV_AzDeployAppCertificateValue }}
ENV_AzDeployTenantId: ${{ secrets.ENV_AzDeployTenantId }}
ENV_AzDeploySubcriptionId: ${{ secrets.ENV_AzDeploySubcriptionId }}
ENV_AzResourceGroupName: ${{ secrets.ENV_AzResourceGroupName }}
ENV_AzStorageAccountName: ${{ secrets.ENV_AzStorageAccountName }}
ENV_AzBlobContainerName: ${{ secrets.ENV_AzBlobContainerName }}
ENV_AzBlobContainerWebName: ${{ secrets.ENV_AzBlobContainerWebName }}

on:
push:
branches:
- main
- 'release/**'
- develop
jobs:

version:
runs-on: ubuntu-latest
outputs:
majorMinorPatch: ${{ steps.setoutputs.outputs.majorMinorPatch }}
semver: ${{ steps.setoutputs.outputs.semver }}

steps:

- uses: actions/setup-node@v3
with:
node-version: '16'

- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0
with:
versionSpec: '5.x'

- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v0

- name: Set outputs
id: setoutputs
run: |
echo "majorMinorPatch=$GITVERSION_MAJORMINORPATCH" >> "$GITHUB_OUTPUT"
echo "semver=$GITVERSION_SEMVER" >> "$GITHUB_OUTPUT"
deploy-storybook:
runs-on: ubuntu-latest
needs: version
env:
VERSION: ${{ needs.version.outputs.semver }}
steps:

- name: Checkout
uses: actions/checkout@v3

- name: Install Bicep
shell: sh
run: |
curl -Lo bicep https://github.com/Azure/bicep/releases/latest/download/bicep-linux-musl-x64
chmod +x ./bicep
mv ./bicep /usr/local/bin/bicep
- name: Install Azure PowerShell modules
shell: pwsh
run: |
Install-Module Az.Accounts -RequiredVersion 2.7.3 -Force
Install-Module Az.Resources -RequiredVersion 5.4.0 -Force
Install-Module Az.Storage -RequiredVersion 5.2.0 -Force
- uses: pnpm/action-setup@v2
with:
version: 8
run_install: false

- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install

- name: Run pre-requisites tasks
run: |
pnpm i -g gulp
cd ./packages/components
gulp set-version --semver $VERSION
- name: Build Storybook
run: npx lerna run docs:build --scope=pnp-modern-search-core

- name: Run PowerShell deployment
shell: pwsh
run: |
./deploy/deploy-docs.ps1 -Env CI -Version "$env:VERSION"
deploy-mkdocs:
runs-on: ubuntu-latest
needs: version
env:
VERSION: ${{ needs.version.outputs.semver }}
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Setup python
uses: actions/setup-python@v2
with:
python-version: 3.x

- name: Deploy documentation
run: |
pip install markdown-include
pip install mkdocs-git-revision-date-localized-plugin
pip install mkdocs-material==7.2.4
mkdocs gh-deploy --force
259 changes: 259 additions & 0 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,259 @@
name: Publish components

on:
push:
branches:
- main
- 'release/**'
- develop
jobs:

version:
runs-on: ubuntu-latest
outputs:
majorMinorPatch: ${{ steps.setoutputs.outputs.majorMinorPatch }}
semver: ${{ steps.setoutputs.outputs.semver }}

steps:

- uses: actions/setup-node@v3
with:
node-version: '16'

- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: Install GitVersion
uses: gittools/actions/gitversion/setup@v0
with:
versionSpec: '5.x'

- name: Determine Version
id: gitversion
uses: gittools/actions/gitversion/execute@v0

- name: Set outputs
id: setoutputs
run: |
echo "majorMinorPatch=$GITVERSION_MAJORMINORPATCH" >> "$GITHUB_OUTPUT"
echo "semver=$GITVERSION_SEMVER" >> "$GITHUB_OUTPUT"
tests:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./packages/components
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- uses: actions/setup-node@v3
with:
node-version: '16'

- uses: pnpm/action-setup@v2
with:
version: 8
run_install: false

- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install

- name: Tests
run: pnpm run test


build_spfx:
runs-on: ubuntu-latest
env:
SEMVER: ${{ needs.version.outputs.semver }}
MAJORMINORPATCH: ${{ needs.version.outputs.majorMinorPatch }}
needs: [version, build_components]
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- uses: actions/setup-node@v3
with:
node-version: '16'

- uses: pnpm/action-setup@v2
with:
version: 8
run_install: false

- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install

- name: Build
run: |
npx lerna run build --scope pnp-modern-search-core
- name: Build + bundle SPFx
working-directory: ./packages/spfx
run: |
gulp update-version --value $MAJORMINORPATCH
gulp bundle --ship
gulp package-solution --ship
- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: pnp-modern-search-core-spfx-$SEMVER
path: ${{ github.workspace }}/**/*.sppkg

release_spfx:
runs-on: ubuntu-latest
environment: production
if: ${{ github.ref_name == 'main' || startsWith(github.ref_name, 'release') || github.event.inputs.create_release }}
needs: [version,build_spfx]
defaults:
run:
working-directory: ./packages/spfx
steps:

- uses: actions/checkout@v3
with:
fetch-depth: 0

- uses: actions/download-artifact@v3
with:
name: pnp-modern-search-core-spfx-$SEMVER

- name: Create GitHub release
uses: ncipollo/release-action@v1
with:
name: PnP Modern Search Core WebParts - ${{ needs.version.outputs.semver }}
artifacts: ${{ github.workspace }}/**/*.sppkg
bodyFile: ".github/workflows/release-template.md"
draft: true
generateReleaseNotes: true
allowUpdates: true
replacesArtifacts: true
prerelease: ${{ startsWith(github.ref_name, 'release') }}
tag: ${{ needs.version.outputs.majorMinorPatch }}
commit: ${{ github.ref_name }}

build_components:

runs-on: ubuntu-latest
needs: [version, tests]
defaults:
run:
working-directory: ./packages/components
env:
VERSION: ${{ needs.version.outputs.semver }}
steps:
- uses: actions/setup-node@v3
with:
node-version: '16'
registry-url: 'https://registry.npmjs.org'

- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- uses: pnpm/action-setup@v2
with:
version: 8
run_install: false

- name: Get pnpm store directory
shell: bash
run: |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV
- uses: actions/cache@v3
name: Setup pnpm cache
with:
path: ${{ env.STORE_PATH }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install dependencies
run: pnpm install

- name: Version package
run: pnpm version $VERSION --no-git-tag-version

- name: Bundle
run: pnpm run bundle:prod

- name: Build
run: pnpm run build

- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: build_dist
path: ${{ github.workspace }}/packages/components/dist

publish_components:
runs-on: ubuntu-latest
needs: [version,build_components]
defaults:
run:
working-directory: ./packages/components
env:
VERSION: ${{ needs.version.outputs.semver }}
steps:
- uses: actions/setup-node@v3
with:
node-version: '16'
registry-url: 'https://registry.npmjs.org'

- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0

- name: get-npm-version
id: package-version
run: echo "currentVersion=$(npm view pnp-modern-search-core dist-tags.latest)" >> "$GITHUB_OUTPUT"

- uses: actions/download-artifact@v3
with:
name: build_dist

- name: Publish
env:
CURRENT_VERSION: ${{ steps.package-version.outputs.currentVersion }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }}
if: $CURRENT_VERSION != ${{ needs.version.outputs.semver }}
run: npm publish


4 changes: 4 additions & 0 deletions .github/workflows/release-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
**This solution includes only one `.sppkg` file:**
- `pnp-modern-search-core-spfx.sppkg`.

____
Loading

0 comments on commit 0b6ca15

Please sign in to comment.