upd: update deployment workflow #20
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 | |
- 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/ | |
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-main-${{ 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: 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/ | |
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 |