Skip to content

E2E Tests

E2E Tests #984

Workflow file for this run

name: E2E Tests
on:
push:
paths:
- .github/workflows/end-to-end.yml
- example-project/**
schedule:
- cron: "20 5 * * *"
workflow_dispatch:
jobs:
node:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [16.x, 18.x, 20.x, 22.x]
dependencies: [install, update]
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node-version }}
cache: npm
cache-dependency-path: example-project/package-lock.json
- name: Install dependencies
run: npm ${{ matrix.dependencies }}
working-directory: ./example-project
- name: Run example project with valid token
env:
INGESTING_HOST: ${{ secrets.CLOUD_INGESTING_HOST }}
SOURCE_TOKEN: ${{ secrets.CLOUD_SOURCE_TOKEN }}
run: node index.js ${{ env.SOURCE_TOKEN }} ${{ env.INGESTING_HOST }}
working-directory: ./example-project
- name: Run example project with invalid token
env:
INGESTING_HOST: ${{ secrets.CLOUD_INGESTING_HOST }}
run: |
if node index.js INVALID_TOKEN ${{ env.INGESTING_HOST }}; then
echo "This should have failed but didn't"
exit 1
else
echo "Failed successfully"
fi
working-directory: ./example-project
bun:
runs-on: ubuntu-latest
strategy:
matrix:
bun-version: [latest, 1.0.0]
dependencies: [install, update]
fail-fast: false
steps:
- uses: actions/checkout@v4
- name: Set up Bun ${{ matrix.bun-version }}
uses: oven-sh/setup-bun@v1
with:
bun-version: ${{ matrix.bun-version }}
- name: Install dependencies
run: bun ${{ matrix.dependencies }}
working-directory: ./example-project
- name: Run example project with valid token
env:
INGESTING_HOST: ${{ secrets.CLOUD_INGESTING_HOST }}
SOURCE_TOKEN: ${{ secrets.CLOUD_SOURCE_TOKEN }}
run: bun run index.js ${{ env.SOURCE_TOKEN }} ${{ env.INGESTING_HOST }}
working-directory: ./example-project
- name: Run example project with invalid token
env:
INGESTING_HOST: ${{ secrets.CLOUD_INGESTING_HOST }}
run: |
if bun run index.js INVALID_TOKEN ${{ env.INGESTING_HOST }}; then
echo "This should have failed but didn't"
exit 1
else
echo "Failed successfully"
fi
working-directory: ./example-project
notify-slack:
if: ${{ failure() && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master' || github.event_name == 'schedule') }}
needs: [node, bun]
runs-on: ubuntu-latest
steps:
- name: Notify Slack
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
run: |
curl -X POST "$SLACK_WEBHOOK_URL" \
-H 'Content-Type: application/json' \
-d "{
\"username\": \"E2E tests in JS client\",
\"icon_emoji\": \":warning:\",
\"text\": \":red_circle: *${{ github.workflow }}* failed on \`${{ github.ref_name }}\`\n<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View failing run>\"
}"