Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9a51856896 | ||
|
|
77a45f1479 |
@@ -62,6 +62,19 @@ jobs:
|
||||
docker compose logs web --tail 50
|
||||
exit 1
|
||||
|
||||
- name: Create Gitea Release
|
||||
if: startsWith(gitea.ref, 'refs/tags/')
|
||||
env:
|
||||
RELEASE_TOKEN: ${{ secrets.RELEASE_TOKEN }}
|
||||
run: |
|
||||
TAG="${{ gitea.ref_name }}"
|
||||
curl -s -X POST \
|
||||
"https://gitea.vectry.tech/api/v1/repos/Vectry/codeboard/releases" \
|
||||
-H "Authorization: token ${RELEASE_TOKEN}" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d "{\"tag_name\": \"${TAG}\", \"name\": \"${TAG}\", \"body\": \"Automated release for ${TAG}\", \"draft\": false, \"prerelease\": false}" \
|
||||
|| echo "Release may already exist — skipping"
|
||||
|
||||
- name: Cleanup
|
||||
if: always()
|
||||
run: docker image prune -f
|
||||
|
||||
@@ -1,7 +1,13 @@
|
||||
import { withSentryConfig } from "@sentry/nextjs";
|
||||
|
||||
/** @type {import('next').NextConfig} */
|
||||
const config = {
|
||||
transpilePackages: ["@codeboard/shared", "@codeboard/database"],
|
||||
output: "standalone",
|
||||
};
|
||||
|
||||
export default config;
|
||||
export default withSentryConfig(config, {
|
||||
silent: !process.env.CI,
|
||||
disableServerWebpackPlugin: true,
|
||||
disableClientWebpackPlugin: true,
|
||||
});
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
"react-markdown": "^9.0.0",
|
||||
"stripe": "^20.3.1",
|
||||
"tailwind-merge": "^2.6.0",
|
||||
"@sentry/nextjs": "^8.28.0",
|
||||
"zod": "^3.24.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
||||
7
apps/web/sentry.client.config.ts
Normal file
7
apps/web/sentry.client.config.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
import * as Sentry from "@sentry/nextjs";
|
||||
|
||||
Sentry.init({
|
||||
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
|
||||
tracesSampleRate: process.env.NODE_ENV === "development" ? 1.0 : 0.1,
|
||||
debug: false,
|
||||
});
|
||||
7
apps/web/sentry.edge.config.ts
Normal file
7
apps/web/sentry.edge.config.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
import * as Sentry from "@sentry/nextjs";
|
||||
|
||||
Sentry.init({
|
||||
dsn: process.env.NEXT_PUBLIC_SENTRY_DSN,
|
||||
tracesSampleRate: process.env.NODE_ENV === "development" ? 1.0 : 0.1,
|
||||
debug: false,
|
||||
});
|
||||
7
apps/web/sentry.server.config.ts
Normal file
7
apps/web/sentry.server.config.ts
Normal file
@@ -0,0 +1,7 @@
|
||||
import * as Sentry from "@sentry/nextjs";
|
||||
|
||||
Sentry.init({
|
||||
dsn: process.env.SENTRY_DSN || process.env.NEXT_PUBLIC_SENTRY_DSN,
|
||||
tracesSampleRate: process.env.NODE_ENV === "development" ? 1.0 : 0.1,
|
||||
debug: false,
|
||||
});
|
||||
13
apps/web/src/instrumentation.ts
Normal file
13
apps/web/src/instrumentation.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import * as Sentry from "@sentry/nextjs";
|
||||
|
||||
export async function register() {
|
||||
if (process.env.NEXT_RUNTIME === "nodejs") {
|
||||
await import("../sentry.server.config");
|
||||
}
|
||||
|
||||
if (process.env.NEXT_RUNTIME === "edge") {
|
||||
await import("../sentry.edge.config");
|
||||
}
|
||||
}
|
||||
|
||||
export const onRequestError = Sentry.captureRequestError;
|
||||
@@ -21,6 +21,8 @@ services:
|
||||
- EMAIL_USER=hunter@repi.fun
|
||||
- EMAIL_PASSWORD=${EMAIL_PASSWORD:-}
|
||||
- NEXT_PUBLIC_APP_URL=https://codeboard.vectry.tech
|
||||
- NEXT_PUBLIC_SENTRY_DSN=https://637c487708794aaf8f2399496cd2e6c6@glitchtip.vectry.tech/2
|
||||
- SENTRY_DSN=https://637c487708794aaf8f2399496cd2e6c6@glitchtip.vectry.tech/2
|
||||
depends_on:
|
||||
redis:
|
||||
condition: service_started
|
||||
|
||||
Reference in New Issue
Block a user