Skip to content

Merge pull request #41 from MaximumTrainer/dependabot/npm_and_yarn/fr… #3

Merge pull request #41 from MaximumTrainer/dependabot/npm_and_yarn/fr…

Merge pull request #41 from MaximumTrainer/dependabot/npm_and_yarn/fr… #3

name: Deploy Website
# Deploy the Vue 3 frontend to GitHub Pages.
# Triggered automatically on pushes to main, or manually via workflow_dispatch.
on:
push:
branches: [main]
paths:
- 'frontend/**'
- '.github/workflows/deploy-website.yml'
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
# Only one Pages deployment runs at a time; skip intermediate queued runs.
concurrency:
group: pages
cancel-in-progress: false
jobs:
build:
name: Build Frontend
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: frontend/package-lock.json
- name: Install dependencies
run: npm ci
working-directory: frontend
- name: Build
run: npm run build
working-directory: frontend
env:
# Set the base URL for GitHub Pages: /repo-name/
# Override at the repo level via a repository variable if needed.
VITE_BASE_URL: ${{ vars.VITE_BASE_URL || '/' }}
- name: Configure Pages
uses: actions/configure-pages@v4
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: frontend/dist
deploy:
name: Deploy to GitHub Pages
runs-on: ubuntu-latest
needs: build
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4