Skip to content

Merge pull request #1 from actcoding/dependabot/github_actions/oven-s… #34

Merge pull request #1 from actcoding/dependabot/github_actions/oven-s…

Merge pull request #1 from actcoding/dependabot/github_actions/oven-s… #34

Workflow file for this run

name: CI
on:
push:
branches:
- main
tags:
- "v*.*.*"
pull_request:
branches:
- main
jobs:
build:
name: Build package
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest
- uses: actions/cache/restore@v4
id: cache
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('bun.lockb') }}
- name: Install Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: bun install --frozen-lockfile
- uses: actions/cache/save@v4
if: steps.cache.outputs.cache-hit != 'true'
with:
path: node_modules
key: ${{ runner.os }}-${{ hashFiles('bun.lockb') }}
- name: Build
run: bun run build
- name: Generate documentation
run: |
bun run scripts/gen-docs-actions.ts --force && \
bun run scripts/gen-docs-api.ts --force
- uses: actions/upload-artifact@v4
with:
name: dist
path: dist/
- uses: actions/upload-artifact@v4
with:
name: docs
path: docs/
publish-npm:
name: Publish to npm
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
needs:
- build
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
with:
name: dist
- uses: actions/setup-node@v4
with:
node-version: 20.x
- uses: JS-DevTools/npm-publish@v3
with:
token: ${{ secrets.NPM_TOKEN }}
- id: extract-changelog
uses: sean0x42/markdown-extract@v2
with:
file: CHANGELOG.md
pattern: ${{ github.ref_name }}
no-print-matched-heading: true
- name: Create Release
uses: softprops/action-gh-release@v1
with:
body: |
## Changelog
${{ steps.extract-changelog.outputs.markdown }}
build-docs:
name: Build documentation
runs-on: ubuntu-latest
needs:
- build
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.11'
cache: pip
- name: Install dependencies (python)
run: pip install -r requirements.txt
- name: Download artifact
uses: actions/download-artifact@v4
with:
run-id: ${{ github.run_id }}
name: docs
path: docs/
- name: Build
run: mkdocs build
- name: Upload artifact for deployment
uses: actions/upload-pages-artifact@v3
if: github.event_name != 'pull_request'
with:
path: .docs/
deploy-docs:
name: Deploy documentation to GH Pages
runs-on: ubuntu-latest
needs:
- build-docs
permissions:
pages: write
id-token: write
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
if: github.event_name != 'pull_request'
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4