mirror of
https://github.com/wavetermdev/waveterm.git
synced 2024-12-21 16:38:23 +01:00
e5f98c6475
NodeJS 20 is almost EOL so I'm updating our workflows to use NodeJS 22. This does not change anything about our app, which will still use NodeJS 20 until Electron shifts away from it. NodeJS 22 is fully backwards-compatible with NodeJS 20 so there's no issue from a testing standpoint.
73 lines
2.3 KiB
YAML
73 lines
2.3 KiB
YAML
name: Docsite and Storybook CI/CD
|
|
|
|
run-name: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' && 'Build and Deploy' || 'Test Build' }} Docsite and Storybook
|
|
|
|
env:
|
|
NODE_VERSION: 22
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
workflow_dispatch:
|
|
# Also run any time a PR is opened targeting the docs or storybook resources
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
paths:
|
|
- "docs/**"
|
|
- "storybook/**"
|
|
- "**/*.story.*"
|
|
- "**/*.stories.*"
|
|
- ".github/workflows/deploy-docsite.yml"
|
|
|
|
jobs:
|
|
build:
|
|
name: Build Docsite
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: ${{env.NODE_VERSION}}
|
|
- name: Install yarn
|
|
run: |
|
|
corepack enable
|
|
yarn install
|
|
- name: Build docsite
|
|
run: yarn build
|
|
working-directory: docs/
|
|
|
|
- name: Build Storybook
|
|
run: yarn build-storybook
|
|
- name: Copy Storybook to docsite output
|
|
run: cp -r storybook-static docs/build/storybook
|
|
- name: Upload Build Artifact
|
|
# Only upload the build artifact when pushed to the main branch
|
|
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
|
uses: actions/upload-pages-artifact@v3
|
|
with:
|
|
path: docs/build
|
|
deploy:
|
|
name: Deploy to GitHub Pages
|
|
# Only deploy when pushed to the main branch
|
|
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
|
needs: build
|
|
# Grant GITHUB_TOKEN the permissions required to make a Pages deployment
|
|
permissions:
|
|
pages: write # to deploy to Pages
|
|
id-token: write # to verify the deployment originates from an appropriate source
|
|
|
|
# Deploy to the github-pages environment
|
|
environment:
|
|
name: github-pages
|
|
url: ${{ steps.deployment.outputs.page_url }}
|
|
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Deploy to GitHub Pages
|
|
id: deployment
|
|
uses: actions/deploy-pages@v4
|