Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
39 commits
Select commit Hold shift + click to select a range
d7df804
Added integration tests setup
sagarkori143 Aug 24, 2025
2073a6b
running build pages before build post list testing because we need pa…
sagarkori143 Aug 24, 2025
e6f9e0c
reconfigure the temp path for creating and analyzing the script side …
sagarkori143 Aug 24, 2025
6720b80
fixed build pages
sagarkori143 Aug 24, 2025
ad65594
fixed linting issues
sagarkori143 Aug 24, 2025
be2bea2
fixed teh mistake in scripts
sagarkori143 Aug 24, 2025
6e7023c
passing the base path to the script
sagarkori143 Aug 28, 2025
f27fb90
adding testing for build dashboard
sagarkori143 Sep 4, 2025
5895e7f
added a few more to build post and dashbaord
sagarkori143 Sep 5, 2025
9182dff
trying to pass the github token
sagarkori143 Sep 5, 2025
367e1d1
adding env to workflow
sagarkori143 Sep 5, 2025
3af8f4c
trying the github token in testsing yml fiel
sagarkori143 Sep 5, 2025
154cda5
reverted some unnecessary changes
sagarkori143 Oct 24, 2025
bbb0b56
Now going with the runner inporting approach
sagarkori143 Oct 24, 2025
ae72854
building pages before testing post list, added dev env for build dash…
sagarkori143 Oct 24, 2025
ffa665b
fixed linting issues
sagarkori143 Oct 24, 2025
7d5128b
added tests for build tools with mock
sagarkori143 Oct 24, 2025
139bb5f
shifted from mock to nock
sagarkori143 Oct 24, 2025
49267a9
fixed linting issues
sagarkori143 Oct 25, 2025
34e4a50
chore: squash all fixes/tests into one commit
sagarkori143 Nov 7, 2025
3b00c00
trying without locks
sagarkori143 Nov 7, 2025
534af85
fixed linting
sagarkori143 Nov 7, 2025
43f9f22
resolved codrabbit suggestions
sagarkori143 Nov 16, 2025
50db9bc
fixed linting issues
sagarkori143 Nov 16, 2025
b3850b5
Update npm/runners/build-adopters-list-runner.ts
sagarkori143 Nov 16, 2025
3c26ba0
Update tests/integration/build-adopters-list-runner.int.test.ts
sagarkori143 Nov 16, 2025
3bf03d3
Update tests/integration/build-dashboard.int.test.ts
sagarkori143 Nov 16, 2025
97d3823
Update tests/integration/build-adopters-list-runner.int.test.ts
sagarkori143 Nov 16, 2025
cb9f10b
Update npm/runners/build-dashboard-runner.ts
sagarkori143 Nov 16, 2025
d87cb47
Update npm/runners/build-dashboard-runner.ts
sagarkori143 Nov 16, 2025
526088a
merged changes gracefully
sagarkori143 Nov 16, 2025
44b0448
final changes
sagarkori143 Nov 16, 2025
984f157
minor runner tweak
sagarkori143 Nov 16, 2025
ce145e3
applied suggested changes over comments
sagarkori143 Nov 16, 2025
73df674
fixed linting issues
sagarkori143 Nov 16, 2025
b2c8045
changes suggested by coderabbit
sagarkori143 Nov 16, 2025
449c0e3
applied suggested changes
sagarkori143 Nov 16, 2025
35087f7
applied suggested changes
sagarkori143 Nov 16, 2025
6b187fe
fixed linting isues
sagarkori143 Nov 16, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions config/all-tags.json
Original file line number Diff line number Diff line change
Expand Up @@ -177,6 +177,16 @@
"color": "bg-[#E1224E]",
"borderColor": "border-[#B9012b]"
},
{
"name": "FastAPI",
"color": "bg-[#61d0f2]",
"borderColor": "border-[#40ccf7]"
},
{
"name": "Django",
"color": "bg-[#61d0f2]",
"borderColor": "border-[#40ccf7]"
},
{
"name": "Socket.IO",
"color": "bg-[#61d0f2]",
Expand Down
157 changes: 5 additions & 152 deletions config/meetings.json
Original file line number Diff line number Diff line change
@@ -1,156 +1,9 @@
[
{
"title": "Marketing WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=NWNsZmNtcXFlNDA5aXFxMTZ0MXI4OTBwMmsgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1830",
"banner": "",
"date": "2025-04-29T14:00:00.000Z"
},
{
"title": "AsyncAPI Community WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=ZmQ4aHUxb2I4a244am5sMGJpdGF2MWM5bHMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1867",
"banner": "https://github.com/user-attachments/assets/e0c22c5a-94a8-488c-970c-14aa1697283c",
"date": "2025-05-06T15:00:00.000Z"
},
{
"title": "Design WG Meeting ",
"calLink": "https://www.google.com/calendar/event?eid=MWxhNTc1cDRqZGc5cGdsdmZ0aWt1YnMwMWsgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1868",
"banner": "",
"date": "2025-05-01T16:00:00.000Z"
},
{
"title": "Marketing WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=ZmNmajEwN2J0M2E5anV2dnNhcXRwMWxlaWcgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1880",
"banner": "",
"date": "2025-05-13T14:00:00.000Z"
},
{
"title": "AsyncAPI Community WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=NTJwZGM4Z2Flczc0bmRzY2czMjRwaXRjamMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1897",
"banner": "https://github.com/user-attachments/assets/e0c22c5a-94a8-488c-970c-14aa1697283c",
"date": "2025-05-20T15:00:00.000Z"
},
{
"title": "Design Meeting",
"calLink": "https://www.google.com/calendar/event?eid=cHBvNWJ0aXMwODBhcmhpcWMwcXBucGp2bzggY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1905",
"banner": "",
"date": "2025-05-15T16:00:00.000Z"
},
{
"title": "Design WG Meeting ",
"calLink": "https://www.google.com/calendar/event?eid=OTdwMDl2dTlwdm9yNzRhZTV0ajdsbmQ5aW8gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1908",
"banner": "",
"date": "2025-05-29T16:00:00.000Z"
},
{
"title": "Marketing WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=MWN2aGdmajFlbXF2NjllZGQ5ajZpaDJ2YWcgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1914",
"banner": "",
"date": "2025-05-27T14:00:00.000Z"
},
{
"title": "AsyncAPI Community WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=dTFtbm1jZXJnbWowbDVvNjlmdmJqdDA0cjQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1919",
"banner": "https://github.com/user-attachments/assets/e0c22c5a-94a8-488c-970c-14aa1697283c",
"date": "2025-06-03T15:00:00.000Z"
},
{
"title": "GSoC Welcome Contributors Call",
"calLink": "https://www.google.com/calendar/event?eid=NGVwZ283cmRjcW1tZ2R1aG1maWR0Yzd1cWcgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1922",
"banner": "",
"date": "2025-05-29T10:00:00.000Z"
},
{
"title": "Marketing WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=am9saTZzYThlNjRobXN2M3NzZTN1YTFxbGsgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1927",
"banner": "",
"date": "2025-06-10T14:00:00.000Z"
},
{
"title": "AsyncAPI Design WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=cmE2ZWY2ZGh2cWoxdmt1bGI4b2QxNGNvMDQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1955",
"banner": "",
"date": "2025-06-19T16:00:00.000Z"
},
{
"title": "Marketing WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=djgzbHJjbm1oNmp2dDU2dTBsMmZrdWI0dGsgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1957",
"banner": "",
"date": "2025-06-24T14:00:00.000Z"
},
{
"title": "AsyncAPI Community WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=anI1OG0yZHI5Y3JhOWx1YjdqZGlqOG5zbW8gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1935",
"banner": "https://github.com/user-attachments/assets/e0c22c5a-94a8-488c-970c-14aa1697283c",
"date": "2025-06-17T15:00:00.000Z"
},
{
"title": "AsyncAPI Community WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=MXVzaXNyMWQ1djVyMzJvcXFkbWIzMG44dWsgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1962",
"banner": "https://github.com/user-attachments/assets/e0c22c5a-94a8-488c-970c-14aa1697283c",
"date": "2025-07-01T15:00:00.000Z"
},
{
"title": "Marketing WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=Z2hrM2IzcTZma2FpbzlrNzJicDlxZjU1ZWMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1968",
"banner": "",
"date": "2025-07-08T14:00:00.000Z"
},
{
"title": "AsyncAPI Community WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=c3Zkbmp1dmU3OGlpa203Y2pxYWt1cTNxZjggY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1969",
"banner": "https://github.com/user-attachments/assets/e0c22c5a-94a8-488c-970c-14aa1697283c",
"date": "2025-07-15T15:00:00.000Z"
},
{
"title": "AsyncAPI Design WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=YTZhYjdnZmtyYmM1aWo1aGNvOGxmODM1bW8gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1971",
"banner": "",
"date": "2025-07-03T16:00:00.000Z"
},
{
"title": "AsyncAPI Community WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=YWZtZ2xmNG9ndDhqbHBybHNiNWdiZnZodDQgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1988",
"banner": "https://github.com/user-attachments/assets/e0c22c5a-94a8-488c-970c-14aa1697283c",
"date": "2025-07-29T15:00:00.000Z"
},
{
"title": "Governance Board Meeting",
"calLink": "https://www.google.com/calendar/event?eid=NG5nMTFoaHZramtjZTFpbWRrNjUwNTcwdm8gY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/1989",
"banner": "",
"date": "2025-07-29T13:00:00.000Z"
},
{
"title": "AsyncAPI Community WG Meeting",
"calLink": "https://www.google.com/calendar/event?eid=MmZwZjVqMjQycTJ2ZTgwMmx1bjFua3ZjMHMgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/2014",
"banner": "https://github.com/user-attachments/assets/e0c22c5a-94a8-488c-970c-14aa1697283c",
"date": "2025-08-12T15:00:00.000Z"
},
{
"title": "AsyncAPI Design WG Meeting ",
"calLink": "https://www.google.com/calendar/event?eid=bzI2c2ZvaTAxNHNtMzBkOXBlcjU4cjA0azggY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn",
"url": "https://github.com/asyncapi/community/issues/2017",
"banner": "",
"date": "2025-08-07T16:00:00.000Z"
"title": "Community Meeting",
"calLink": "https://www.google.com/calendar/event?eid=example",
"url": "https://github.com/asyncapi/community/issues/123",
"banner": "https://example.com/banner.jpg",
"date": "2024-02-20T16:00:00.000Z"
}
]
34 changes: 8 additions & 26 deletions config/newsroom_videos.json
Original file line number Diff line number Diff line change
@@ -1,32 +1,14 @@
[
{
"image_url": "https://i.ytimg.com/vi/7vvdmDVZPX0/hqdefault.jpg",
"title": "AsyncAPI Community WG Meeting , Tuesday July 29th 2025",
"description": "https://github.com/asyncapi/community/issues/1988.",
"videoId": "7vvdmDVZPX0"
"image_url": "https://i.ytimg.com/vi/K7fvKbOfqOg/hqdefault.jpg",
"title": "Developer Experience Working Group, 14:00 UTC Thursday May 23rd 2024",
"description": "Define our vision and plans https://github.com/asyncapi/community/issues/1220.",
"videoId": "K7fvKbOfqOg"
},
{
"image_url": "https://i.ytimg.com/vi/SaIPQaROWsc/hqdefault.jpg",
"title": "First Meeting of New Governance Board , Tuesday July 29th 2025",
"description": "https://github.com/asyncapi/community/issues/1989.",
"videoId": "SaIPQaROWsc"
},
{
"image_url": "https://i.ytimg.com/vi/xD5smwg6az8/hqdefault.jpg",
"title": "AsyncAPI Community WG Meeting , Tuesday July 29th 2025",
"description": "https://github.com/asyncapi/community/issues/1988.",
"videoId": "xD5smwg6az8"
},
{
"image_url": "https://i.ytimg.com/vi/FkGnFqMTj88/hqdefault.jpg",
"title": "AsyncAPI Community WG Meeting, Tuesday July 15th 2025",
"description": "https://github.com/asyncapi/community/issues/1969.",
"videoId": "FkGnFqMTj88"
},
{
"image_url": "https://i.ytimg.com/vi/6AIUb1FNqEk/hqdefault.jpg",
"title": "AsyncAPI Community WG Meeting, Tuesday July 1st 2025",
"description": "https://github.com/asyncapi/community/issues/1962.",
"videoId": "6AIUb1FNqEk"
"image_url": "https://i.ytimg.com/vi/94SSXX78VCU/hqdefault.jpg",
"title": "Essential Building Blocks Working Group, 18:00 UTC Tuesday May 14th 2024",
"description": "https://github.com/asyncapi/community/issues/1200.",
"videoId": "94SSXX78VCU"
}
]
3 changes: 1 addition & 2 deletions jest.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,9 @@ const config = {
'scripts/tools/tags-color.ts',
'scripts/helpers/logger.ts'
],
// Default: all tests
// Default: all tests except integration
testMatch: [
'**/tests/**/*.test.*',
'**/npm/integrationTests/**/*.test.*',
'!**/netlify/**/*.test.*'
],
moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json'],
Expand Down
62 changes: 47 additions & 15 deletions npm/runners/build-adopters-list-runner.ts
Original file line number Diff line number Diff line change
@@ -1,22 +1,40 @@
import { dirname, resolve } from 'path';
import { fileURLToPath } from 'url';

import { buildAdoptersList } from '@/scripts/adopters';
import { logger } from '@/scripts/helpers/logger';
import { CustomError } from '@/types/errors/CustomError';

const currentFilePath = fileURLToPath(import.meta.url);
const currentDirPath = dirname(currentFilePath);

export interface BuildAdoptersListOptions {
sourcePath?: string;
targetPath?: string;
}

/**
* Runs the build adopters list process.
* Runs the build adopters list process with configurable options.
*
* This function determines the source YAML file path and the target JSON output path.
* It invokes the buildAdoptersList script and handles errors, logging them with context
* and letting the top-level .catch handle process exit.
*
* This function invokes the buildAdoptersList script and handles errors,
* logging them with context and letting the top-level .catch handle process exit.
* @throws {CustomError} When the build process fails
* @param options - Optional configuration for source and target paths.
* @throws {CustomError} When the build process fails or an error occurs in the runner.
*/
async function runBuildAdoptersList(): Promise<void> {
async function runBuildAdoptersList(options: BuildAdoptersListOptions = {}): Promise<void> {
try {
await buildAdoptersList();
// Use provided options or fall back to default production paths
const sourcePath = options.sourcePath || resolve(currentDirPath, '../../config', 'adopters.yml');
const targetPath = options.targetPath || resolve(currentDirPath, '../../config', 'adopters.json');

await buildAdoptersList(sourcePath, targetPath);
} catch (error) {
const customError = CustomError.fromError(error, {
category: 'script',
operation: 'runBuildAdoptersList',
detail: 'Build adopters list runner failed'
detail: `Build adopters list failed - sourcePath: ${options.sourcePath}, targetPath: ${options.targetPath}`
});

logger.error('Build adopters list runner failed', customError);
Expand All @@ -25,11 +43,25 @@ async function runBuildAdoptersList(): Promise<void> {
}
}

// Self-executing async function to handle top-level await
(async () => {
try {
await runBuildAdoptersList();
} catch {
process.exit(1);
}
})();
// Only run CLI if NOT in test environment
if (process.env.NODE_ENV !== 'test' && process.env.VITEST_WORKER_ID === undefined) {
// Self-executing async function to handle top-level await
(async () => {
try {
await runBuildAdoptersList();
} catch (error) {
const customError = CustomError.fromError(error, {
category: 'script',
operation: 'runBuildAdoptersList',
detail: 'Build adopters list runner CLI failed'
});

logger.error('Build adopters list runner CLI failed', customError);

process.exit(1);
}
})();
}

// Export for testing purposes
export { runBuildAdoptersList };
24 changes: 12 additions & 12 deletions npm/runners/build-dashboard-runner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { CustomError } from '@/types/errors/CustomError';
const currentFilePath = fileURLToPath(import.meta.url);
const currentDirPath = dirname(currentFilePath);

interface BuildDashboardOptions {
export interface BuildDashboardOptions {
outputPath?: string;
}

Expand All @@ -22,7 +22,7 @@ interface BuildDashboardOptions {
* @param options - Optional configuration for output path
* @throws {CustomError} If the build process fails or an error occurs in the runner
*/
async function runBuildDashboard(options: BuildDashboardOptions = {}): Promise<void> {
export async function runBuildDashboard(options: BuildDashboardOptions = {}): Promise<void> {
try {
const outputPath = options.outputPath || resolve(currentDirPath, '../../dashboard.json');

Expand All @@ -48,20 +48,20 @@ async function runBuildDashboard(options: BuildDashboardOptions = {}): Promise<v
}
}

// Run only in non-test environments
if (process.env.NODE_ENV === 'test') {
logger.info('Skipping dashboard build in test environment');
} else {
// Self-executing async function to handle top-level await
// Only run CLI if NOT in test environment (when imported by tests, don't auto-run)
if (process.env.NODE_ENV !== 'test' && process.env.VITEST_WORKER_ID === undefined) {
(async () => {
try {
await runBuildDashboard();
// Extract output file path from CLI args
const outputFileArgIndex = process.argv.indexOf('--outputFile');
const outputPath =
outputFileArgIndex === -1 || !process.argv[outputFileArgIndex + 1]
? resolve(currentDirPath, '../../dashboard.json')
: process.argv[outputFileArgIndex + 1];

await runBuildDashboard({ outputPath });
} catch (error) {
// Ensure we exit with error code
process.exit(1);
}
})();
}

// Export for testing purposes
export { runBuildDashboard };
8 changes: 3 additions & 5 deletions npm/runners/build-meetings-runner.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { CustomError } from '@/types/errors/CustomError';
const currentFilePath = fileURLToPath(import.meta.url);
const currentDirPath = dirname(currentFilePath);

interface BuildMeetingsOptions {
export interface BuildMeetingsOptions {
outputPath?: string;
}

Expand Down Expand Up @@ -40,10 +40,8 @@ async function runBuildMeetings(options: BuildMeetingsOptions = {}): Promise<voi
}
}

// Run only in non-test environments
if (process.env.NODE_ENV === 'test') {
logger.info('Skipping meetings build in test environment');
} else {
// Only run CLI if NOT in test environment (when imported by tests, don't auto-run)
if (process.env.NODE_ENV !== 'test' && process.env.VITEST_WORKER_ID === undefined) {
// Self-executing async function to handle top-level await
(async () => {
try {
Expand Down
Loading
Loading