Skip to content

ci: upload dist for tag run #46

ci: upload dist for tag run

ci: upload dist for tag run #46

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 && \
bun run scripts/gen-config-schema.ts
- uses: actions/upload-artifact@v4
if: ${{ startsWith(github.ref, 'refs/tags/') }}
with:
name: dist
path: |
dist/
config.schema.json
retention-days: 7
- uses: actions/upload-artifact@v4
with:
name: docs
path: docs/
retention-days: 1
publish-npm:
name: Publish to npm
runs-on: ubuntu-latest
if: ${{ startsWith(github.ref, 'refs/tags/') }}
needs:
- build
permissions:
contents: write
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@v2
with:
body: |
## Changelog
${{ steps.extract-changelog.outputs.markdown }}
build-docs:
name: Build documentation
runs-on: ubuntu-latest
if: ${{ ! startsWith(github.ref, 'refs/tags/') }}
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/
retention-days: 1
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' && ! startsWith(github.ref, 'refs/tags/') }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4