Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: oss-serverless support #85

Merged
merged 17 commits into from
Nov 14, 2024
182 changes: 174 additions & 8 deletions .github/workflows/common-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,9 @@ jobs:
node-version: ${{ env.node_version }}
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: npm ci
run: |
node prepareForTest.js cdk-basic
npm i
- name: Download build artifact
uses: actions/download-artifact@v4
if: ${{ inputs.mode == 'build' }}
Expand Down Expand Up @@ -84,7 +86,9 @@ jobs:
node-version: ${{ env.node_version }}
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: npm ci
run: |
node prepareForTest.js cdk-esm
npm i
- name: Download build artifact
uses: actions/download-artifact@v4
if: ${{ inputs.mode == 'build' }}
Expand Down Expand Up @@ -131,7 +135,9 @@ jobs:
node-version: ${{ env.node_version }}
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: npm ci
run: |
node prepareForTest.js sls-basic
npm i
- name: Download build artifact
uses: actions/download-artifact@v4
if: ${{ inputs.mode == 'build' }}
Expand Down Expand Up @@ -179,7 +185,9 @@ jobs:
node-version: ${{ env.node_version }}
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: npm ci
run: |
node prepareForTest.js sls-esbuild-cjs
npm i
- name: Download build artifact
uses: actions/download-artifact@v4
if: ${{ inputs.mode == 'build' }}
Expand Down Expand Up @@ -227,7 +235,9 @@ jobs:
node-version: ${{ env.node_version }}
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: npm ci
run: |
node prepareForTest.js sls-esbuild-esm
npm i
- name: Download build artifact
uses: actions/download-artifact@v4
if: ${{ inputs.mode == 'build' }}
Expand Down Expand Up @@ -263,6 +273,156 @@ jobs:
- name: Test - observability mode
run: OBSERVABLE_MODE=true npx vitest --retry 1 test/sls-esbuild-esm.test.ts

test-osls-basic:
runs-on: ubuntu-latest
concurrency:
group: test-osls-basic
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.node_version }}
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: |
node prepareForTest.js osls-basic
npm i
- name: Download build artifact
uses: actions/download-artifact@v4
if: ${{ inputs.mode == 'build' }}
with:
name: dist
path: dist
- name: Install lambda-live-debugger globally
if: ${{ inputs.mode == 'global' }}
run: |
npm i lambda-live-debugger -g
npm i osls@3.41.0 -g
working-directory: test
- name: Install lambda-live-debugger locally
if: ${{ inputs.mode == 'local' }}
run: |
npm i lambda-live-debugger
working-directory: test
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: eu-west-1
role-to-assume: ${{ secrets.AWS_ROLE }}
role-session-name: GitHubActions
- name: Destroy
run: npm run destroy
working-directory: test/osls-basic
continue-on-error: true
- name: Deploy
run: npm run deploy
working-directory: test/osls-basic
- name: Test
run: npx vitest --retry 1 test/osls-basic.test.ts
- name: Test - observability mode
run: OBSERVABLE_MODE=true npx vitest --retry 1 test/osls-basic.test.ts

test-osls-esbuild-cjs:
runs-on: ubuntu-latest
concurrency:
group: test-osls-esbuild-cjs
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.node_version }}
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: |
node prepareForTest.js osls-esbuild-cjs
npm i
- name: Download build artifact
uses: actions/download-artifact@v4
if: ${{ inputs.mode == 'build' }}
with:
name: dist
path: dist
- name: Install lambda-live-debugger globally
if: ${{ inputs.mode == 'global' }}
run: |
npm i lambda-live-debugger -g
npm i osls@3.41.0 -g
working-directory: test
- name: Install lambda-live-debugger locally
if: ${{ inputs.mode == 'local' }}
run: |
npm i lambda-live-debugger
working-directory: test
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: eu-west-1
role-to-assume: ${{ secrets.AWS_ROLE }}
role-session-name: GitHubActions
- name: Destroy
run: npm run destroy
working-directory: test/osls-esbuild-cjs
continue-on-error: true
- name: Deploy
run: npm run deploy
working-directory: test/osls-esbuild-cjs
- name: Test
run: npx vitest --retry 1 test/osls-esbuild-cjs.test.ts
- name: Test - observability mode
run: OBSERVABLE_MODE=true npx vitest --retry 1 test/osls-esbuild-cjs.test.ts

test-osls-esbuild-esm:
runs-on: ubuntu-latest
concurrency:
group: test-osls-esbuild-esm
steps:
- uses: actions/checkout@v4
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ env.node_version }}
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: |
node prepareForTest.js osls-esbuild-esm
npm i
- name: Download build artifact
uses: actions/download-artifact@v4
if: ${{ inputs.mode == 'build' }}
with:
name: dist
path: dist
- name: Install lambda-live-debugger globally
if: ${{ inputs.mode == 'global' }}
run: |
npm i lambda-live-debugger -g
npm i osls@3.41.0 -g
working-directory: test
- name: Install lambda-live-debugger locally
if: ${{ inputs.mode == 'local' }}
run: |
npm i lambda-live-debugger
working-directory: test
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-region: eu-west-1
role-to-assume: ${{ secrets.AWS_ROLE }}
role-session-name: GitHubActions
- name: Destroy
run: npm run destroy
working-directory: test/osls-esbuild-esm
continue-on-error: true
- name: Deploy
run: npm run deploy
working-directory: test/osls-esbuild-esm
- name: Test
run: npx vitest --retry 1 test/osls-esbuild-esm.test.ts
- name: Test - observability mode
run: OBSERVABLE_MODE=true npx vitest --retry 1 test/osls-esbuild-esm.test.ts

test-sam-basic:
runs-on: ubuntu-latest
concurrency:
Expand All @@ -279,7 +439,9 @@ jobs:
node-version: ${{ env.node_version }}
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: npm ci
run: |
node prepareForTest.js sam-basic
npm i
- name: Download build artifact
uses: actions/download-artifact@v4
if: ${{ inputs.mode == 'build' }}
Expand Down Expand Up @@ -330,7 +492,9 @@ jobs:
node-version: ${{ env.node_version }}
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: npm ci
run: |
node prepareForTest.js sam-alt
npm i
- name: Download build artifact
uses: actions/download-artifact@v4
if: ${{ inputs.mode == 'build' }}
Expand Down Expand Up @@ -377,7 +541,9 @@ jobs:
node-version: ${{ env.node_version }}
registry-url: 'https://registry.npmjs.org'
- name: Install dependencies
run: npm ci
run: |
node prepareForTest.js terraform-basic
npm i
- name: Download build artifact
uses: actions/download-artifact@v4
if: ${{ inputs.mode == 'build' }}
Expand Down
60 changes: 60 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,66 @@
"type": "node",
"cwd": "${workspaceRoot}/test/sls-esbuild-esm"
},
{
"name": "LLDebugger - OSLS basic",
"program": "${workspaceRoot}/node_modules/tsx/dist/cli.mjs",
"args": ["../../src/lldebugger.ts", "--stage=test"],
"request": "launch",
"skipFiles": ["<node_internals>/**"],
"console": "integratedTerminal",
"type": "node",
"cwd": "${workspaceRoot}/test/osls-basic"
},
{
"name": "LLDebugger - OSLS basic - observability",
"program": "${workspaceRoot}/node_modules/tsx/dist/cli.mjs",
"args": ["../../src/lldebugger.ts", "--stage=test", "-o"],
"request": "launch",
"skipFiles": ["<node_internals>/**"],
"console": "integratedTerminal",
"type": "node",
"cwd": "${workspaceRoot}/test/osls-basic"
},
{
"name": "LLDebugger - OSLS EsBuild CJS",
"program": "${workspaceRoot}/node_modules/tsx/dist/cli.mjs",
"args": ["../../src/lldebugger.ts"],
"request": "launch",
"skipFiles": ["<node_internals>/**"],
"console": "integratedTerminal",
"type": "node",
"cwd": "${workspaceRoot}/test/osls-esbuild-cjs"
},
{
"name": "LLDebugger - OSLS EsBuild CJS - observability",
"program": "${workspaceRoot}/node_modules/tsx/dist/cli.mjs",
"args": ["../../src/lldebugger.ts", "-o"],
"request": "launch",
"skipFiles": ["<node_internals>/**"],
"console": "integratedTerminal",
"type": "node",
"cwd": "${workspaceRoot}/test/osls-esbuild-cjs"
},
{
"name": "LLDebugger - OSLS EsBuild ESM",
"program": "${workspaceRoot}/node_modules/tsx/dist/cli.mjs",
"args": ["../../src/lldebugger.ts"],
"request": "launch",
"skipFiles": ["<node_internals>/**"],
"console": "integratedTerminal",
"type": "node",
"cwd": "${workspaceRoot}/test/osls-esbuild-esm"
},
{
"name": "LLDebugger - OSLS EsBuild ESM - observability",
"program": "${workspaceRoot}/node_modules/tsx/dist/cli.mjs",
"args": ["../../src/lldebugger.ts", "-o"],
"request": "launch",
"skipFiles": ["<node_internals>/**"],
"console": "integratedTerminal",
"type": "node",
"cwd": "${workspaceRoot}/test/osls-esbuild-esm"
},
{
"name": "LLDebugger - SAM basic",
"program": "${workspaceRoot}/node_modules/tsx/dist/cli.mjs",
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ This tool offers similar functionality to [SST](https://sst.dev/) and [Serverles
It supports the following frameworks:

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