GitHub templates and reusable workflows for AprovanLabs
Structure following https://www.freecodecamp.org/news/how-to-use-the-dot-github-repository/
Reusable workflows live in .github/workflows/ and are available to all AprovanLabs repos via:
uses: AprovanLabs/.github/.github/workflows/<workflow>.yml@mainRuns pnpm run lint and pnpm run typecheck in a pnpm monorepo.
Inputs:
| Input | Default | Description |
|---|---|---|
node-version |
'20' |
Node.js version |
pnpm-version |
'' |
pnpm version (empty = read from packageManager field) |
working-directory |
'.' |
Directory to run commands in |
Example:
jobs:
ci:
uses: AprovanLabs/.github/.github/workflows/lint-and-typecheck.yml@main
with:
node-version: '20'Builds and publishes all packages in a pnpm monorepo to npm.
Inputs:
| Input | Default | Description |
|---|---|---|
node-version |
'20' |
Node.js version |
pnpm-version |
'' |
pnpm version |
registry-url |
'https://registry.npmjs.org' |
npm registry |
publish-tag |
'latest' |
npm dist-tag (e.g. latest, dev, next) |
working-directory |
'.' |
Directory to run commands in |
Secrets:
| Secret | Required | Description |
|---|---|---|
npm-token |
yes | npm auth token |
Example:
jobs:
publish:
uses: AprovanLabs/.github/.github/workflows/publish-packages.yml@main
with:
publish-tag: latest
secrets:
npm-token: ${{ secrets.NPM_TOKEN }}Installs dependencies, runs a build command, and optionally uploads the output as a GitHub artifact. Supports Vite, Next.js, Astro, and any other bundler.
Inputs:
| Input | Default | Description |
|---|---|---|
node-version |
'20' |
Node.js version |
pnpm-version |
'' |
pnpm version |
build-command |
'pnpm run build' |
Build command to execute |
output-directory |
'dist' |
Directory containing build output |
artifact-name |
'app-bundle' |
Name for the uploaded artifact |
working-directory |
'.' |
Directory to run commands in |
upload-artifact |
true |
Whether to upload the build output |
Example:
jobs:
build:
uses: AprovanLabs/.github/.github/workflows/bundle-app.yml@main
with:
build-command: pnpm --filter my-app build
output-directory: apps/my-app/dist
artifact-name: my-app