Skip to content
Merged
Changes from all commits
Commits
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
48 changes: 24 additions & 24 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -234,7 +234,7 @@ jobs:
cp -r /tmp/digests-router-amd64/private/* /tmp/digests-router/private/ || true
cp -r /tmp/digests-router-arm64/public/* /tmp/digests-router/public/ || true
cp -r /tmp/digests-router-arm64/private/* /tmp/digests-router/private/ || true

# List files to verify
echo "Public digests:"
ls -la /tmp/digests-router/public/ || true
Expand Down Expand Up @@ -432,7 +432,7 @@ jobs:
run: |
mkdir -p /tmp/digests
rm -rf /tmp/digests/* || true

- name: Download x86_64 digests
uses: actions/download-artifact@v4
with:
Expand All @@ -444,13 +444,13 @@ jobs:
with:
name: digests-extension-aarch64
path: /tmp/digests-aarch64

- name: Merge digests
run: |
# Copy files from platform-specific folders to the main folder
cp -r /tmp/digests-x86_64/* /tmp/digests/ || true
cp -r /tmp/digests-aarch64/* /tmp/digests/ || true

# List files to verify
echo "Extension digests:"
ls -la /tmp/digests/ || true
Expand Down Expand Up @@ -659,7 +659,7 @@ jobs:
outputs:
stack-url-suffix: ${{ steps.getDeployUrl.outputs.stack-url-suffix }}
url: https://lambdadispatch${{ steps.getDeployUrl.outputs.stack-url-suffix }}.ghpublic.pwrdrvr.com
if: ${{ always() && needs.install-deps.result != 'failed' }}
if: ${{ !cancelled() && needs.install-deps.result != 'failed' }}
env:
DEMO_APP_REGISTRY_IMAGE: public.ecr.aws/pwrdrvr/lambda-dispatch-demo-app${{ github.event_name == 'pull_request' && '-dev' || '' }}
ROUTER_REGISTRY_IMAGE: public.ecr.aws/pwrdrvr/lambda-dispatch-router${{ github.event_name == 'pull_request' && '-dev' || '' }}
Expand Down Expand Up @@ -706,7 +706,7 @@ jobs:
smoke-test:
needs: [deploy]
runs-on: ubuntu-latest
if: ${{ always() && needs.deploy.result != 'failed' }}
if: ${{ !cancelled() && needs.deploy.result != 'failed' }}
steps:
- name: Smoke Test
run: |
Expand All @@ -722,11 +722,11 @@ jobs:
for i in {1..5}; do
curl ${BASE_URL}/ping
done

create-status-checks:
needs: [deploy, smoke-test]
runs-on: ubuntu-latest
if: ${{ always() && needs.deploy.result != 'failed' && github.event_name == 'pull_request' }}
if: ${{ !cancelled() && needs.deploy.result != 'failed' && github.event_name == 'pull_request' }}
steps:
- name: Generate URLs
id: generate-urls
Expand All @@ -737,15 +737,15 @@ jobs:
echo "alb_demoapp=https://lambdadispatch-demoapp-pr-${PR_NUMBER}.ghpublic.pwrdrvr.com" >> $GITHUB_OUTPUT
echo "nlb_router=https://lambdadispatch-nlb-pr-${PR_NUMBER}.ghpublic.pwrdrvr.com" >> $GITHUB_OUTPUT
echo "nlb_demoapp=https://lambdadispatch-nlb-demoapp-pr-${PR_NUMBER}.ghpublic.pwrdrvr.com" >> $GITHUB_OUTPUT

- name: Find Deployment URLs Comment
uses: peter-evans/find-comment@v3
id: find-comment
with:
issue-number: ${{ github.event.pull_request.number }}
comment-author: 'github-actions[bot]'
body-includes: '### 🚀 Deployment URLs'

- name: Post Deployment URLs Comment
uses: peter-evans/create-or-update-comment@v4
with:
Expand All @@ -754,55 +754,55 @@ jobs:
issue-number: ${{ github.event.pull_request.number }}
body: |
### 🚀 Deployment URLs

#### Application Load Balancer (ALB)
- **Router**: [${{ steps.generate-urls.outputs.alb_router }}](${{ steps.generate-urls.outputs.alb_router }})
- **Demo App**: [${{ steps.generate-urls.outputs.alb_demoapp }}](${{ steps.generate-urls.outputs.alb_demoapp }})

#### Network Load Balancer (NLB)
- **Router (Port ${{ github.event.pull_request.number }})**: [${{ steps.generate-urls.outputs.nlb_router }}](${{ steps.generate-urls.outputs.nlb_router }})
- **Demo App (Port ${{ github.event.pull_request.number }}+10000)**: [${{ steps.generate-urls.outputs.nlb_demoapp }}](${{ steps.generate-urls.outputs.nlb_demoapp }})

### 🧪 Test Endpoints

#### Basic Tests
```bash
# Simple ping test
curl -v ${{ steps.generate-urls.outputs.alb_router }}/ping

# View request headers
curl ${{ steps.generate-urls.outputs.alb_router }}/headers

# Delayed response (milliseconds)
curl ${{ steps.generate-urls.outputs.alb_router }}/delay?delay=500
```

#### Load/Performance Tests
```bash
# Ping test with 100 concurrent requests (Hey)
hey -h2 -c 100 -n 10000 ${{ steps.generate-urls.outputs.alb_router }}/ping

# Ping test with controlled concurrency (oha)
oha -c 20 -z 60s ${{ steps.generate-urls.outputs.alb_router }}/ping

# Post and echo data
curl -X POST -H "Content-Type: text/plain" --data "Hello World" ${{ steps.generate-urls.outputs.alb_router }}/echo
```

#### Advanced Features
```bash
# Chunked/streaming response
curl ${{ steps.generate-urls.outputs.alb_router }}/chunked-response

# Read from S3
curl ${{ steps.generate-urls.outputs.alb_router }}/read-s3

# Read from DynamoDB
curl ${{ steps.generate-urls.outputs.alb_router }}/read
```

*Deployment updated: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}*

# Create a single environment for the main deployment URL to show in PR checks
- name: Update Main Environment
env:
Expand Down