Skip to content

E2E Tests

E2E Tests #579

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:
infrastructure: [legacy, cloud]
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: ${{ matrix.infrastructure == 'cloud' && secrets.CLOUD_INGESTING_HOST || 'in.logs.betterstack.com' }}
SOURCE_TOKEN: ${{ matrix.infrastructure == 'cloud' && secrets.CLOUD_SOURCE_TOKEN || secrets.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: ${{ matrix.infrastructure == 'cloud' && secrets.CLOUD_INGESTING_HOST || 'in.logs.betterstack.com' }}
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:
infrastructure: [legacy, cloud]
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: ${{ matrix.infrastructure == 'cloud' && secrets.CLOUD_INGESTING_HOST || 'in.logs.betterstack.com' }}
SOURCE_TOKEN: ${{ matrix.infrastructure == 'cloud' && secrets.CLOUD_SOURCE_TOKEN || secrets.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: ${{ matrix.infrastructure == 'cloud' && secrets.CLOUD_INGESTING_HOST || 'in.logs.betterstack.com' }}
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