Skip to content

Commit 99c18d3

Browse files
feat: oss-serverless support (#85)
* feat: oss-serverless support * fix: CICD * fix: prettier * fix: CICD * fix: CICD * fix: prettier * fix: dependencies * fix: CICD tests * fix: lint * fix: CICD * chore: add tests * chore: Add logs * fix: build * fix: prettier * wip * wip * final fix
1 parent 779dc6e commit 99c18d3

35 files changed

+1196
-126
lines changed

.github/workflows/common-test.yml

Lines changed: 174 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,9 @@ jobs:
3737
node-version: ${{ env.node_version }}
3838
registry-url: 'https://registry.npmjs.org'
3939
- name: Install dependencies
40-
run: npm ci
40+
run: |
41+
node prepareForTest.js cdk-basic
42+
npm i
4143
- name: Download build artifact
4244
uses: actions/download-artifact@v4
4345
if: ${{ inputs.mode == 'build' }}
@@ -84,7 +86,9 @@ jobs:
8486
node-version: ${{ env.node_version }}
8587
registry-url: 'https://registry.npmjs.org'
8688
- name: Install dependencies
87-
run: npm ci
89+
run: |
90+
node prepareForTest.js cdk-esm
91+
npm i
8892
- name: Download build artifact
8993
uses: actions/download-artifact@v4
9094
if: ${{ inputs.mode == 'build' }}
@@ -131,7 +135,9 @@ jobs:
131135
node-version: ${{ env.node_version }}
132136
registry-url: 'https://registry.npmjs.org'
133137
- name: Install dependencies
134-
run: npm ci
138+
run: |
139+
node prepareForTest.js sls-basic
140+
npm i
135141
- name: Download build artifact
136142
uses: actions/download-artifact@v4
137143
if: ${{ inputs.mode == 'build' }}
@@ -179,7 +185,9 @@ jobs:
179185
node-version: ${{ env.node_version }}
180186
registry-url: 'https://registry.npmjs.org'
181187
- name: Install dependencies
182-
run: npm ci
188+
run: |
189+
node prepareForTest.js sls-esbuild-cjs
190+
npm i
183191
- name: Download build artifact
184192
uses: actions/download-artifact@v4
185193
if: ${{ inputs.mode == 'build' }}
@@ -227,7 +235,9 @@ jobs:
227235
node-version: ${{ env.node_version }}
228236
registry-url: 'https://registry.npmjs.org'
229237
- name: Install dependencies
230-
run: npm ci
238+
run: |
239+
node prepareForTest.js sls-esbuild-esm
240+
npm i
231241
- name: Download build artifact
232242
uses: actions/download-artifact@v4
233243
if: ${{ inputs.mode == 'build' }}
@@ -263,6 +273,156 @@ jobs:
263273
- name: Test - observability mode
264274
run: OBSERVABLE_MODE=true npx vitest --retry 1 test/sls-esbuild-esm.test.ts
265275

276+
test-osls-basic:
277+
runs-on: ubuntu-latest
278+
concurrency:
279+
group: test-osls-basic
280+
steps:
281+
- uses: actions/checkout@v4
282+
- name: Use Node.js
283+
uses: actions/setup-node@v4
284+
with:
285+
node-version: ${{ env.node_version }}
286+
registry-url: 'https://registry.npmjs.org'
287+
- name: Install dependencies
288+
run: |
289+
node prepareForTest.js osls-basic
290+
npm i
291+
- name: Download build artifact
292+
uses: actions/download-artifact@v4
293+
if: ${{ inputs.mode == 'build' }}
294+
with:
295+
name: dist
296+
path: dist
297+
- name: Install lambda-live-debugger globally
298+
if: ${{ inputs.mode == 'global' }}
299+
run: |
300+
npm i lambda-live-debugger -g
301+
302+
working-directory: test
303+
- name: Install lambda-live-debugger locally
304+
if: ${{ inputs.mode == 'local' }}
305+
run: |
306+
npm i lambda-live-debugger
307+
working-directory: test
308+
- name: Configure AWS Credentials
309+
uses: aws-actions/configure-aws-credentials@v4
310+
with:
311+
aws-region: eu-west-1
312+
role-to-assume: ${{ secrets.AWS_ROLE }}
313+
role-session-name: GitHubActions
314+
- name: Destroy
315+
run: npm run destroy
316+
working-directory: test/osls-basic
317+
continue-on-error: true
318+
- name: Deploy
319+
run: npm run deploy
320+
working-directory: test/osls-basic
321+
- name: Test
322+
run: npx vitest --retry 1 test/osls-basic.test.ts
323+
- name: Test - observability mode
324+
run: OBSERVABLE_MODE=true npx vitest --retry 1 test/osls-basic.test.ts
325+
326+
test-osls-esbuild-cjs:
327+
runs-on: ubuntu-latest
328+
concurrency:
329+
group: test-osls-esbuild-cjs
330+
steps:
331+
- uses: actions/checkout@v4
332+
- name: Use Node.js
333+
uses: actions/setup-node@v4
334+
with:
335+
node-version: ${{ env.node_version }}
336+
registry-url: 'https://registry.npmjs.org'
337+
- name: Install dependencies
338+
run: |
339+
node prepareForTest.js osls-esbuild-cjs
340+
npm i
341+
- name: Download build artifact
342+
uses: actions/download-artifact@v4
343+
if: ${{ inputs.mode == 'build' }}
344+
with:
345+
name: dist
346+
path: dist
347+
- name: Install lambda-live-debugger globally
348+
if: ${{ inputs.mode == 'global' }}
349+
run: |
350+
npm i lambda-live-debugger -g
351+
352+
working-directory: test
353+
- name: Install lambda-live-debugger locally
354+
if: ${{ inputs.mode == 'local' }}
355+
run: |
356+
npm i lambda-live-debugger
357+
working-directory: test
358+
- name: Configure AWS Credentials
359+
uses: aws-actions/configure-aws-credentials@v4
360+
with:
361+
aws-region: eu-west-1
362+
role-to-assume: ${{ secrets.AWS_ROLE }}
363+
role-session-name: GitHubActions
364+
- name: Destroy
365+
run: npm run destroy
366+
working-directory: test/osls-esbuild-cjs
367+
continue-on-error: true
368+
- name: Deploy
369+
run: npm run deploy
370+
working-directory: test/osls-esbuild-cjs
371+
- name: Test
372+
run: npx vitest --retry 1 test/osls-esbuild-cjs.test.ts
373+
- name: Test - observability mode
374+
run: OBSERVABLE_MODE=true npx vitest --retry 1 test/osls-esbuild-cjs.test.ts
375+
376+
test-osls-esbuild-esm:
377+
runs-on: ubuntu-latest
378+
concurrency:
379+
group: test-osls-esbuild-esm
380+
steps:
381+
- uses: actions/checkout@v4
382+
- name: Use Node.js
383+
uses: actions/setup-node@v4
384+
with:
385+
node-version: ${{ env.node_version }}
386+
registry-url: 'https://registry.npmjs.org'
387+
- name: Install dependencies
388+
run: |
389+
node prepareForTest.js osls-esbuild-esm
390+
npm i
391+
- name: Download build artifact
392+
uses: actions/download-artifact@v4
393+
if: ${{ inputs.mode == 'build' }}
394+
with:
395+
name: dist
396+
path: dist
397+
- name: Install lambda-live-debugger globally
398+
if: ${{ inputs.mode == 'global' }}
399+
run: |
400+
npm i lambda-live-debugger -g
401+
402+
working-directory: test
403+
- name: Install lambda-live-debugger locally
404+
if: ${{ inputs.mode == 'local' }}
405+
run: |
406+
npm i lambda-live-debugger
407+
working-directory: test
408+
- name: Configure AWS Credentials
409+
uses: aws-actions/configure-aws-credentials@v4
410+
with:
411+
aws-region: eu-west-1
412+
role-to-assume: ${{ secrets.AWS_ROLE }}
413+
role-session-name: GitHubActions
414+
- name: Destroy
415+
run: npm run destroy
416+
working-directory: test/osls-esbuild-esm
417+
continue-on-error: true
418+
- name: Deploy
419+
run: npm run deploy
420+
working-directory: test/osls-esbuild-esm
421+
- name: Test
422+
run: npx vitest --retry 1 test/osls-esbuild-esm.test.ts
423+
- name: Test - observability mode
424+
run: OBSERVABLE_MODE=true npx vitest --retry 1 test/osls-esbuild-esm.test.ts
425+
266426
test-sam-basic:
267427
runs-on: ubuntu-latest
268428
concurrency:
@@ -279,7 +439,9 @@ jobs:
279439
node-version: ${{ env.node_version }}
280440
registry-url: 'https://registry.npmjs.org'
281441
- name: Install dependencies
282-
run: npm ci
442+
run: |
443+
node prepareForTest.js sam-basic
444+
npm i
283445
- name: Download build artifact
284446
uses: actions/download-artifact@v4
285447
if: ${{ inputs.mode == 'build' }}
@@ -330,7 +492,9 @@ jobs:
330492
node-version: ${{ env.node_version }}
331493
registry-url: 'https://registry.npmjs.org'
332494
- name: Install dependencies
333-
run: npm ci
495+
run: |
496+
node prepareForTest.js sam-alt
497+
npm i
334498
- name: Download build artifact
335499
uses: actions/download-artifact@v4
336500
if: ${{ inputs.mode == 'build' }}
@@ -377,7 +541,9 @@ jobs:
377541
node-version: ${{ env.node_version }}
378542
registry-url: 'https://registry.npmjs.org'
379543
- name: Install dependencies
380-
run: npm ci
544+
run: |
545+
node prepareForTest.js terraform-basic
546+
npm i
381547
- name: Download build artifact
382548
uses: actions/download-artifact@v4
383549
if: ${{ inputs.mode == 'build' }}

.vscode/launch.json

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -130,6 +130,66 @@
130130
"type": "node",
131131
"cwd": "${workspaceRoot}/test/sls-esbuild-esm"
132132
},
133+
{
134+
"name": "LLDebugger - OSLS basic",
135+
"program": "${workspaceRoot}/node_modules/tsx/dist/cli.mjs",
136+
"args": ["../../src/lldebugger.ts", "--stage=test"],
137+
"request": "launch",
138+
"skipFiles": ["<node_internals>/**"],
139+
"console": "integratedTerminal",
140+
"type": "node",
141+
"cwd": "${workspaceRoot}/test/osls-basic"
142+
},
143+
{
144+
"name": "LLDebugger - OSLS basic - observability",
145+
"program": "${workspaceRoot}/node_modules/tsx/dist/cli.mjs",
146+
"args": ["../../src/lldebugger.ts", "--stage=test", "-o"],
147+
"request": "launch",
148+
"skipFiles": ["<node_internals>/**"],
149+
"console": "integratedTerminal",
150+
"type": "node",
151+
"cwd": "${workspaceRoot}/test/osls-basic"
152+
},
153+
{
154+
"name": "LLDebugger - OSLS EsBuild CJS",
155+
"program": "${workspaceRoot}/node_modules/tsx/dist/cli.mjs",
156+
"args": ["../../src/lldebugger.ts"],
157+
"request": "launch",
158+
"skipFiles": ["<node_internals>/**"],
159+
"console": "integratedTerminal",
160+
"type": "node",
161+
"cwd": "${workspaceRoot}/test/osls-esbuild-cjs"
162+
},
163+
{
164+
"name": "LLDebugger - OSLS EsBuild CJS - observability",
165+
"program": "${workspaceRoot}/node_modules/tsx/dist/cli.mjs",
166+
"args": ["../../src/lldebugger.ts", "-o"],
167+
"request": "launch",
168+
"skipFiles": ["<node_internals>/**"],
169+
"console": "integratedTerminal",
170+
"type": "node",
171+
"cwd": "${workspaceRoot}/test/osls-esbuild-cjs"
172+
},
173+
{
174+
"name": "LLDebugger - OSLS EsBuild ESM",
175+
"program": "${workspaceRoot}/node_modules/tsx/dist/cli.mjs",
176+
"args": ["../../src/lldebugger.ts"],
177+
"request": "launch",
178+
"skipFiles": ["<node_internals>/**"],
179+
"console": "integratedTerminal",
180+
"type": "node",
181+
"cwd": "${workspaceRoot}/test/osls-esbuild-esm"
182+
},
183+
{
184+
"name": "LLDebugger - OSLS EsBuild ESM - observability",
185+
"program": "${workspaceRoot}/node_modules/tsx/dist/cli.mjs",
186+
"args": ["../../src/lldebugger.ts", "-o"],
187+
"request": "launch",
188+
"skipFiles": ["<node_internals>/**"],
189+
"console": "integratedTerminal",
190+
"type": "node",
191+
"cwd": "${workspaceRoot}/test/osls-esbuild-esm"
192+
},
133193
{
134194
"name": "LLDebugger - SAM basic",
135195
"program": "${workspaceRoot}/node_modules/tsx/dist/cli.mjs",

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ This tool offers similar functionality to [SST](https://sst.dev/) and [Serverles
77
It supports the following frameworks:
88

99
- AWS CDK v2
10-
- Serverless Framework v3 (SLS)
10+
- Serverless Framework v3 (SLS) and [`osls` fork](https://github.com/oss-serverless/serverless)
1111
- AWS Serverless Application Model (SAM)
1212
- Terraform
1313
- Any other framework or setup by implementing a simple function in TypeScript

0 commit comments

Comments
 (0)