Merge pull request #404 from blakmatrix/dependabot/npm_and_yarn/vite-… #6
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: Continuous Integration and Deployment | |
on: | |
push: | |
branches: [ master ] | |
pull_request: | |
branches: [ master ] | |
jobs: | |
# Combined CI and CD Jobs to reduce redundancy | |
build-and-deploy: | |
runs-on: ubuntu-latest | |
# Sets permissions for the GITHUB_TOKEN | |
permissions: | |
contents: read | |
pages: write | |
id-token: write | |
steps: | |
# Checkout code just once | |
- uses: actions/checkout@v3 | |
# Setup Node.js only once | |
- name: Setup Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
cache: 'npm' | |
# Install dependencies only once | |
- name: Install Dependencies | |
run: npm ci | |
# Lint, Test, Build, and Generate Documentation | |
- name: Lint | |
run: npm run lint | |
- name: Test | |
run: npm run test | |
- name: Build | |
run: npm run build | |
- name: Generate Documentation | |
run: npm run docs:code | |
env: | |
NODE_OPTIONS: --max-old-space-size=4096 | |
NO_COLOR: true | |
# Conditional Deployment steps | |
- name: Setup Pages | |
if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
uses: actions/configure-pages@v3 | |
- name: Build with VitePress | |
if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
run: npm run docs:deploy-github-pages | |
- name: Upload artifact | |
if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
uses: actions/upload-pages-artifact@v2 | |
with: | |
path: docs/.vitepress/dist | |
- name: Deploy to GitHub Pages | |
if: github.event_name == 'push' && github.ref == 'refs/heads/master' | |
uses: actions/deploy-pages@v2 |