fix npm publish job #88
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy to GitHub Pages | |
on: | |
# Trigger the workflow every time you push to the `main` branch or manually from the Actions tab | |
push: | |
branches: | |
- main | |
- test | |
# Allows you to run this workflow manually from the Actions tab on GitHub. | |
workflow_dispatch: | |
# Allow this job to clone the repo and create a page deployment | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
jobs: | |
build_main: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout main branch using git | |
uses: actions/checkout@v3 | |
with: | |
ref: main | |
- name: Restore build files | |
if: github.event.ref != 'refs/heads/main' | |
id: cache-main-dist | |
uses: actions/cache/restore@v3 | |
with: | |
path: ./packages/kite-chat-docs/dist | |
key: ${{ runner.os }}-dist-main-${{ hashFiles('./package-lock.json') }} | |
- name: List Cached Files | |
if: steps.cache-main-dist.outputs.cache-hit == 'true' | |
run: ls -l ./packages/kite-chat-docs/dist | |
- name: Set up Node.js | |
if: steps.cache-main-dist.outputs.cache-hit != 'true' | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Cache node modules | |
if: steps.cache-main-dist.outputs.cache-hit != 'true' | |
id: cache-node-modules | |
uses: actions/cache@v3 | |
with: | |
path: ./node_modules | |
key: ${{ runner.os }}-modules-main-${{ hashFiles('./package-lock.json') }} | |
- name: Install dependencies | |
if: steps.cache-main-dist.outputs.cache-hit != 'true' && steps.cache-node-modules.outputs.cache-hit != 'true' | |
run: npm install -w @pragmasoft-ukraine/kite-chat-docs | |
- name: Analyze Component | |
if: steps.cache-main-dist.outputs.cache-hit != 'true' | |
run: npm run analyze | |
- name: Build Docs | |
if: steps.cache-main-dist.outputs.cache-hit != 'true' | |
run: npm run build -w @pragmasoft-ukraine/kite-chat-docs | |
- name: Save build files | |
if: steps.cache-main-dist.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v3 | |
id: cache | |
with: | |
path: ./packages/kite-chat-docs/dist | |
key: ${{ runner.os }}-dist-main-${{ hashFiles('./package-lock.json') }} | |
- name: Upload Main Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: main-dist | |
path: ./packages/kite-chat-docs/dist/ | |
- name: Upload Kite Chat Component Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: kite-chat-component | |
path: ./packages/kite-chat-component | |
- name: Upload Kite Chat Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: kite-chat | |
path: ./packages/kite-chat | |
build_test: | |
needs: build_main | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout test branch using git | |
uses: actions/checkout@v3 | |
with: | |
ref: test | |
- name: Restore main build files | |
uses: actions/download-artifact@v3 | |
with: | |
name: main-dist | |
path: ./packages/kite-chat-docs/dist | |
- name: Restore build files | |
if: github.event.ref != 'refs/heads/test' | |
id: cache-test-dist | |
uses: actions/cache/restore@v3 | |
with: | |
path: ./packages/kite-chat-docs/dist/test | |
key: ${{ runner.os }}-dist-test-${{ hashFiles('./package-lock.json') }} | |
- name: List Cached Files | |
if: steps.cache-test-dist.outputs.cache-hit == 'true' | |
run: ls -l ./packages/kite-chat-docs/dist/test | |
- name: Set up Node.js | |
if: steps.cache-test-dist.outputs.cache-hit != 'true' | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
- name: Cache node modules | |
if: steps.cache-test-dist.outputs.cache-hit != 'true' | |
id: cache-node-modules | |
uses: actions/cache@v3 | |
with: | |
path: ./node_modules | |
key: ${{ runner.os }}-modules-test-${{ hashFiles('./package-lock.json') }} | |
- name: Install dependencies | |
if: steps.cache-test-dist.outputs.cache-hit != 'true' && steps.cache-node-modules.outputs.cache-hit != 'true' | |
run: npm install | |
- name: Build Kite Chat component | |
if: steps.cache-test-dist.outputs.cache-hit != 'true' | |
run: npm run build -w @pragmasoft-ukraine/kite-chat-component | |
- name: Build Kite Chat | |
if: steps.cache-test-dist.outputs.cache-hit != 'true' | |
run: npm run build -w @pragmasoft-ukraine/kite-chat | |
- name: Analyze Component | |
if: steps.cache-test-dist.outputs.cache-hit != 'true' | |
run: npm run analyze | |
- name: Build Docs for Test | |
if: steps.cache-test-dist.outputs.cache-hit != 'true' | |
run: npm run build:test -w @pragmasoft-ukraine/kite-chat-docs | |
- name: Save build files | |
if: steps.cache-test-dist.outputs.cache-hit != 'true' | |
uses: actions/cache/save@v3 | |
id: save-test-dist | |
with: | |
path: ./packages/kite-chat-docs/dist/test | |
key: ${{ runner.os }}-dist-test-${{ hashFiles('./package-lock.json') }} | |
- name: Upload Pages Artifact | |
uses: actions/upload-pages-artifact@v2 | |
with: | |
path: ./packages/kite-chat-docs/dist/ | |
publish_kite_chat: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout main branch using git | |
uses: actions/checkout@v3 | |
with: | |
ref: main | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 18 | |
registry-url: 'https://registry.npmjs.org' | |
scope: '@pragmasoft-ukraine' | |
- name: Install dependencies | |
run: npm install | |
- name: Build Kite Chat component | |
run: npm run build -w @pragmasoft-ukraine/kite-chat-component | |
- name: Build Kite Chat | |
run: npm run build -w @pragmasoft-ukraine/kite-chat | |
- name: Analyze Component | |
run: npm run analyze | |
- name: Publish to npm | |
run: | | |
npm publish --access public -w @pragmasoft-ukraine/kite-chat-component | |
npm publish --access public -w @pragmasoft-ukraine/kite-chat | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} | |
deploy: | |
needs: [build_main, build_test] | |
runs-on: ubuntu-latest | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
steps: | |
- name: Deploy Docs to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v2 |