Skip to content

Harden GitHub Actions execution and improve workflows #35

Harden GitHub Actions execution and improve workflows

Harden GitHub Actions execution and improve workflows #35

Workflow file for this run

name: Docs
# Build the VitePress documentation site and deploy to GitHub Pages.
# Site URL: https://<org>.github.io/skill-up/
on:
push:
branches: [main]
paths:
- 'docs/**'
- 'package.json'
- 'package-lock.json'
- '.github/workflows/docs.yml'
pull_request:
branches: [main]
paths:
- 'docs/**'
- 'package.json'
- 'package-lock.json'
- '.github/workflows/docs.yml'
workflow_dispatch:
# Jobs opt into only the permissions they need.
permissions: {}
# Allow only one concurrent deployment, but do not cancel in-progress runs.
concurrency:
group: docs-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
build:
name: Build
# Documentation dependencies and build scripts are pull-request code.
runs-on: ubuntu-24.04
timeout-minutes: 15
permissions:
contents: read
steps:
- name: Checkout source
uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
fetch-depth: 0
persist-credentials: false
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: '20'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build VitePress site
run: npm run docs:build
- name: Upload GitHub Pages artifact
if: github.event_name != 'pull_request'
uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5
with:
path: docs/.vitepress/dist
deploy:
name: Deploy
if: github.event_name != 'pull_request'
needs: build
runs-on: ubuntu-24.04
timeout-minutes: 10
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Configure GitHub Pages
uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5