Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/workflows/build-arm64.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ jobs:
runs-on: ubuntu-24.04-arm
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Setup .NET Core
Expand Down
26 changes: 18 additions & 8 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
steps:
- name: Resolve preview pull request
id: pr
uses: actions/github-script@v8
uses: actions/github-script@v9
with:
script: |
if (context.eventName === "repository_dispatch") {
Expand Down Expand Up @@ -89,7 +89,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0
ref: ${{ (github.event_name == 'repository_dispatch' && github.event.client_payload.head_sha) || github.event.pull_request.head.sha || github.sha }}
Expand Down Expand Up @@ -135,7 +135,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
ref: ${{ (github.event_name == 'repository_dispatch' && github.event.client_payload.head_sha) || github.event.pull_request.head.sha || github.sha }}

Expand All @@ -144,7 +144,7 @@ jobs:
with:
dotnet-version: 10.0.301

- uses: actions/cache@v5
- uses: actions/cache@v6
with:
path: ~/.nuget/packages
key: nuget-${{ runner.os }}-${{ hashFiles('**/packages.lock.json') }}
Expand Down Expand Up @@ -187,7 +187,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
ref: ${{ (github.event_name == 'repository_dispatch' && github.event.client_payload.head_sha) || github.event.pull_request.head.sha || github.sha }}

Expand All @@ -197,7 +197,7 @@ jobs:
node-version: 24

- name: Cache node_modules
uses: actions/cache@v5
uses: actions/cache@v6
id: cache-node-modules
with:
path: src/Exceptionless.Web/ClientApp/node_modules
Expand Down Expand Up @@ -233,7 +233,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
ref: ${{ (github.event_name == 'repository_dispatch' && github.event.client_payload.head_sha) || github.event.pull_request.head.sha || github.sha }}

Expand Down Expand Up @@ -382,7 +382,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
ref: ${{ (github.event_name == 'repository_dispatch' && github.event.client_payload.head_sha) || github.event.pull_request.head.sha || github.sha }}

Expand Down Expand Up @@ -464,6 +464,16 @@ jobs:
echo "- **Deployment**: Skipped" >> $GITHUB_STEP_SUMMARY
fi

deploy-website:
name: Deploy website
if: ${{ needs.version.outputs.is_prod_deploy == 'true' }}
needs: [version, deploy]
permissions:
contents: read
pages: write
id-token: write
uses: ./.github/workflows/website.yml

preview-comment-result:
needs: [preview-context, version, test-api, test-client, docker-build, docker-publish, deploy]
if: ${{ always() && needs.preview-context.outputs.pr-number != '' }}
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:

steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7
with:
fetch-depth: 0

Expand All @@ -38,7 +38,7 @@ jobs:
echo "$HOME/.dotnet/tools" >> "$GITHUB_PATH"
aspire --version

- uses: actions/cache@v5
- uses: actions/cache@v6
with:
path: ~/.nuget/packages
key: nuget-${{ runner.os }}-${{ hashFiles('**/packages.lock.json') }}
Expand All @@ -54,7 +54,7 @@ jobs:
node-version: 24

- name: Cache node_modules
uses: actions/cache@v5
uses: actions/cache@v6
id: cache-node-modules
with:
path: src/Exceptionless.Web/ClientApp/node_modules
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dev-environment-reset.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Azure Login
run: az login --service-principal --username ${{ secrets.AZ_USERNAME }} --password ${{ secrets.AZ_PASSWORD }} --tenant ${{ secrets.AZ_TENANT }} --output none
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dev-environment-start.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Azure Login
run: az login --service-principal --username ${{ secrets.AZ_USERNAME }} --password ${{ secrets.AZ_PASSWORD }} --tenant ${{ secrets.AZ_TENANT }} --output none
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dev-environment-stop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7

- name: Check Schedule Window
id: schedule_window
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/elasticsearch-docker-8.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ jobs:
if: startsWith(github.ref, 'refs/tags/v') != true

steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- name: Setup .NET Core
uses: actions/setup-dotnet@v5
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/preview-command.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
steps:
- name: Prepare Preview
id: preview
uses: actions/github-script@v8
uses: actions/github-script@v9
with:
script: |
const owner = context.repo.owner;
Expand Down Expand Up @@ -136,7 +136,7 @@ jobs:

- name: Dispatch Preview
if: ${{ steps.preview.outputs.pr-number != '' }}
uses: actions/github-script@v8
uses: actions/github-script@v9
env:
PR_NUMBER: ${{ steps.preview.outputs.pr-number }}
HEAD_REF: ${{ steps.preview.outputs.head-ref }}
Expand Down
76 changes: 76 additions & 0 deletions .github/workflows/website.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
name: Website

on:
workflow_dispatch:
workflow_call:
push:
branches:
- website-preview
pull_request:
paths:
- "docs/**"
- ".github/workflows/website.yml"

permissions:
contents: read

jobs:
build:
name: Build website
runs-on: ubuntu-latest
timeout-minutes: 10
defaults:
run:
working-directory: docs

steps:
- name: Checkout
uses: actions/checkout@v7

- name: Setup Deno
uses: denoland/setup-deno@v2
with:
deno-version: lts
cache: true

- name: Check
run: deno task check

- name: Verify
run: deno task verify

- name: Check unused assets
run: deno run --allow-read scripts/find-unused.ts

- name: Upload Pages artifact
if: github.event_name != 'pull_request'
uses: actions/upload-pages-artifact@v5
with:
path: docs/_site

deploy:
name: Deploy website
if: github.event_name != 'pull_request'
needs: build
runs-on: ubuntu-latest
timeout-minutes: 10
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: github-pages
cancel-in-progress: ${{ github.ref == 'refs/heads/website-preview' }}
environment:
name: ${{ github.ref == 'refs/heads/website-preview' && 'github-pages-preview' || 'github-pages' }}
url: ${{ steps.deployment.outputs.page_url }}

steps:
- name: Setup Pages
uses: actions/configure-pages@v6
with:
enablement: true

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v5
4 changes: 4 additions & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
_site/
.cache/
_data/generated.ts
snapshots/
11 changes: 11 additions & 0 deletions docs/404.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
title: "Not Found"
layout: "layouts/page.vto"
permalink: "404.html"
---

Sorry, but the page you were trying to view does not exist.
It looks like this was the result of either:

- a mistyped address
- an out-of-date link
86 changes: 86 additions & 0 deletions docs/_config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
import lume from "lume/mod.ts"
import { docsNavHtml, siteDataJson } from "./scripts/site-collections.ts"

const site = lume({
src: ".",
dest: "_site",
location: new URL("https://exceptionless.com/"),
})

site.ignore(
".cache",
".gitignore",
".npmrc",
"_site",
"deno.json",
"deno.lock",
"news/index.md",
"news/2020/2020-11-11-self-hosted-error-monitoring-on-azure.md",
"package-lock.json",
"package.json",
"public",
"README.md",
"scripts",
"serialization-architecture.md",
"site-migration-plan.md",
"snapshots",
)

site.hooks.markdownIt((markdownIt: any) => {
const defaultHeadingOpen = markdownIt.renderer.rules.heading_open ??
((tokens: any[], index: number, options: unknown, env: Record<string, unknown>, self: any) => {
return self.renderToken(tokens, index, options)
})

markdownIt.renderer.rules.heading_open = (
tokens: any[],
index: number,
options: unknown,
env: Record<string, unknown>,
self: any,
) => {
const token = tokens[index]
if (!token.attrGet("id")) {
const content = tokens[index + 1]?.content ?? ""
token.attrSet("id", uniqueHeadingSlug(content, env))
}

return defaultHeadingOpen(tokens, index, options, env, self)
}
})

site.data("docsNavHtml", docsNavHtml)
site.data("siteDataJson", siteDataJson)
site.data("copyrightYear", new Date().getFullYear())

export default site

function uniqueHeadingSlug(value: string, env: Record<string, unknown>): string {
const counts = getHeadingSlugCounts(env)
const baseSlug = slugifyHeading(value) || "section"
const count = counts.get(baseSlug) ?? 0
counts.set(baseSlug, count + 1)
return count ? `${baseSlug}-${count}` : baseSlug
}

function getHeadingSlugCounts(env: Record<string, unknown>): Map<string, number> {
const key = "__headingSlugCounts"
const existing = env[key]
if (existing instanceof Map) {
return existing as Map<string, number>
}

const counts = new Map<string, number>()
env[key] = counts
return counts
}

function slugifyHeading(value: string): string {
return value
.trim()
.toLowerCase()
.replace(/\s+/g, "-")
.replace(/\./g, "")
.replace(/[^a-z0-9_-]/g, "")
.replace(/^-+|-+$/g, "")
}
10 changes: 10 additions & 0 deletions docs/_data/site.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"url": "https://exceptionless.com",
"title": "Exceptionless",
"description": "Real-time exception reporting for ASP.NET, Web API, WebForms, WPF, Console, and MVC applications. Includes event organization, notifications, and more.",
"author": "Exceptionless Team",
"twitter": "@Exceptionless",
"signupUrl": "https://be.exceptionless.io/signup?domain=exceptionless.com&type=organic",
"appUrl": "https://be.exceptionless.io",
"githubUrl": "https://github.com/exceptionless/Exceptionless"
}
Loading
Loading