mihailik's picture
Better handling of build.
1a7c519
name: Deploy to GitHub Pages
on:
push:
branches:
- main # This workflow will run on pushes to the 'main' branch.
# Change this to your default branch if it's different (e.g., 'master').
permissions:
contents: read # Allows the action to read your repository contents
pages: write # Allows the action to deploy to GitHub Pages
id-token: write # Required to authenticate with GitHub's OIDC provider
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4 # Checks out your repository code
with:
fetch-depth: 1 # <--- Added this line for shallow clone
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '20' # Specify the Node.js version your project needs
cache: 'npm' # Enable caching for npm dependencies
- name: Install dependencies
run: npm install # Installs your project's npm dependencies.
- name: Build project
run: npm run build -- --outfile=./dist/index.js && cp index.html ./dist/index.html # Runs your project's build script (e.g., Vite, esbuild)
- name: Upload artifact for GitHub Pages
uses: actions/upload-pages-artifact@v3
with:
name: github-pages
path: ./dist
deploy:
environment:
name: github-pages # Specifies the deployment environment
url: ${{ steps.deployment.outputs.page_url }} # Retrieves the deployed URL
runs-on: ubuntu-latest
needs: build # This job depends on the 'build' job completing successfully
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4.0.5 # Deploys the artifact to GitHub Pages