Skip to content

docs: rewrite signalr README, fix remaining broken links #146

docs: rewrite signalr README, fix remaining broken links

docs: rewrite signalr README, fix remaining broken links #146

Workflow file for this run

name: CI
on:
push:
branches: [master, dev]
pull_request:
branches: [master]
env:
REGISTRY: ghcr.io
DOTNET_VERSION: '10.0.x'
NODE_VERSION: '22'
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
# Quick validation that everything builds
validate:
name: Validate
runs-on: ubuntu-latest
services:
postgres:
image: postgres:16
ports:
- 5432:5432
env:
POSTGRES_USER: conduit
POSTGRES_PASSWORD: conduitpass
POSTGRES_DB: conduitdb
options: >-
--health-cmd "pg_isready -U conduit -d conduitdb"
--health-interval 10s
--health-timeout 5s
--health-retries 5
redis:
image: redis:7-alpine
ports:
- 6379:6379
options: >-
--health-cmd "redis-cli ping"
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ env.DOTNET_VERSION }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
cache: npm
cache-dependency-path: |
SDKs/Node/package-lock.json
SDKs/Node/Admin/package-lock.json
SDKs/Node/Gateway/package-lock.json
SDKs/Node/Common/package-lock.json
WebAdmin/package-lock.json
- name: .NET Build & Test
run: |
dotnet restore
dotnet build --no-restore
# Run tests but exclude integration tests and timing-sensitive tests
dotnet test --no-build --verbosity normal --filter "FullyQualifiedName!~IntegrationTests&Category!=TimingSensitive"
env:
TEST_REDIS_CONNECTION: localhost:6379
DATABASE_URL: postgresql://conduit:conduitpass@localhost:5432/conduitdb
- name: NPM Build
run: |
cd SDKs/Node
npm ci
npm run build
npm run test:ci
- name: WebAdmin Lint & Type Check
run: |
cd WebAdmin
npm ci
# Clean any stale .next directory before type checking
rm -rf .next
npm run lint
npm run type-check
# Build Docker images (push only from master)
docker:
name: Docker - ${{ matrix.service }}
runs-on: ubuntu-latest
needs: validate
permissions:
contents: read
packages: write
strategy:
matrix:
include:
- service: webadmin
context: .
dockerfile: WebAdmin/Dockerfile
- service: http
context: .
dockerfile: Services/ConduitLLM.Gateway/Dockerfile
- service: admin
context: .
dockerfile: Services/ConduitLLM.Admin/Dockerfile
steps:
- uses: actions/checkout@v4
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ${{ env.REGISTRY }}/knnlabs/conduit-${{ matrix.service }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=sha,prefix={{branch}}-
type=raw,value=latest,enable={{is_default_branch}}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v5
with:
context: ${{ matrix.context }}
file: ${{ matrix.dockerfile }}
platforms: linux/amd64
push: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha,scope=${{ matrix.service }}
cache-to: type=gha,scope=${{ matrix.service }},mode=max
# Publish NPM packages (only from master)
npm-publish:
name: NPM Publish
runs-on: ubuntu-latest
needs: validate
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.NODE_VERSION }}
registry-url: 'https://registry.npmjs.org'
cache: npm
cache-dependency-path: |
SDKs/Node/package-lock.json
SDKs/Node/Admin/package-lock.json
SDKs/Node/Gateway/package-lock.json
SDKs/Node/Common/package-lock.json
- name: Build and Publish
run: |
cd SDKs/Node
npm ci
npm run build
# Generate unique timestamp suffix for continuous releases
TIMESTAMP=$(date +%s)
# Update version and publish Common first (others depend on it)
cd Common
CURRENT_VERSION=$(node -p "require('./package.json').version")
npm version "${CURRENT_VERSION}-next.${TIMESTAMP}" --no-git-tag-version
npm publish --tag next --access public
# Update version and publish Admin
cd ../Admin
CURRENT_VERSION=$(node -p "require('./package.json').version")
npm version "${CURRENT_VERSION}-next.${TIMESTAMP}" --no-git-tag-version
npm publish --tag next --access public
# Update version and publish Gateway
cd ../Gateway
CURRENT_VERSION=$(node -p "require('./package.json').version")
npm version "${CURRENT_VERSION}-next.${TIMESTAMP}" --no-git-tag-version
npm publish --tag next --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}