Shared configurations and composite actions for Astrale TypeScript monorepos.
Requires pnpm 10.9+ for native JSR support.
pnpm add -D jsr:@astrale/typescript-config jsr:@astrale/commitlint-config{
"extends": "@astrale/typescript-config/library",
"compilerOptions": {
"outDir": "./dist",
"rootDir": "./src"
}
}Presets: /base, /library, /app
// commitlint.config.js
import { createConfig } from '@astrale/commitlint-config'
export default createConfig({
scopes: ['server', 'client', 'deps', 'ci'],
}){ "extends": ["github>astrale-os/config:packages/renovate/default"] }Composite actions organized by category in .github/actions/.
.github/actions/
├── setup/ # pnpm + Node.js + install
├── ci/ # lint, typecheck, test, build
├── publish/
│ ├── jsr/ # Publish to JSR
│ └── npm/ # Publish to npm/GitHub Packages
└── release/ # Release Please
Setup pnpm, Node.js, and install dependencies.
steps:
- uses: actions/checkout@v4
- uses: astrale-os/config/.github/actions/setup@main| Input | Default | Description |
|---|---|---|
node-version-file |
.nvmrc |
Path to Node version file |
Run lint, typecheck, test, and build.
jobs:
ci:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astrale-os/config/.github/actions/ci@main
with:
run-test: 'false' # optional| Input | Default | Description |
|---|---|---|
node-version-file |
.nvmrc |
Path to Node version file |
run-lint |
true |
Run ESLint and Prettier |
run-typecheck |
true |
Run TypeScript checks |
run-test |
true |
Run tests |
run-build |
true |
Run build |
lint-command |
pnpm lint |
Lint command |
format-check-command |
pnpm format:check |
Format check command |
typecheck-command |
pnpm typecheck |
Typecheck command |
test-command |
pnpm test |
Test command |
build-command |
pnpm build |
Build command |
Publish a package to JSR with OIDC authentication.
permissions:
contents: read
id-token: write
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astrale-os/config/.github/actions/publish/jsr@main| Input | Default | Description |
|---|---|---|
node-version-file |
.nvmrc |
Path to Node version file |
allow-slow-types |
true |
Allow slow types in JSR |
working-directory |
. |
Directory containing jsr.json |
Publish packages to npm or GitHub Packages.
jobs:
publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astrale-os/config/.github/actions/publish/npm@main
with:
scope: '@astrale-os'
token: ${{ github.token }}| Input | Default | Description |
|---|---|---|
node-version-file |
.nvmrc |
Path to Node version file |
registry-url |
https://npm.pkg.github.com |
npm registry URL |
scope |
required | npm scope (e.g., @astrale-os) |
access |
restricted |
Package access level |
token |
required | npm registry token |
Automated versioning with Release Please.
permissions:
contents: write
pull-requests: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: astrale-os/config/.github/actions/release@main
with:
token: ${{ github.token }}| Input | Default | Description |
|---|---|---|
token |
required | GitHub token for releases and PRs |
config-file |
.release-please-config.json |
Path to config file |
manifest-file |
.release-please-manifest.json |
Path to manifest file |
Outputs: releases_created, paths_released