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

Add CI check for Bun runtime #86

Merged
merged 13 commits into from
Sep 20, 2023
80 changes: 80 additions & 0 deletions .github/workflows/end-to-end.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
name: E2E Tests

on:
push:
branches:
- master
schedule:
- cron: '20 5 * * 1'
workflow_dispatch:

jobs:
node:
runs-on: ubuntu-latest

strategy:
matrix:
node-version: [16.x, 18.x, 20.x]
fail-fast: false

steps:
- uses: actions/checkout@v3

- name: Set up Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: npm
cache-dependency-path: example-project/package-lock.json

- name: Install dependencies
run: npm install
working-directory: ./example-project

- name: Run example project with valid token
run: node index.js ${{ secrets.SOURCE_TOKEN }}
working-directory: ./example-project

- name: Run example project with invalid token
run: |
if node index.js INVALID_TOKEN; then
echo "This should have failed but didn't"
exit 1
else
echo "Failed successfully"
fi
working-directory: ./example-project

tests-bun:
runs-on: ubuntu-latest

strategy:
matrix:
bun-version: [latest, 1.0.0]
fail-fast: false

steps:
- uses: actions/checkout@v3

- name: Set up Bun ${{ matrix.bun-version }}
uses: oven-sh/setup-bun@v1
with:
bun-version: ${{ matrix.bun-version }}

- name: Install dependencies
run: bun install
working-directory: ./example-project

- name: Run example project with valid token
run: bun run index.js ${{ secrets.SOURCE_TOKEN }}
working-directory: ./example-project

- name: Run example project with invalid token
run: |
if bun run index.js INVALID_TOKEN; then
echo "This should have failed but didn't"
exit 1
else
echo "Failed successfully"
fi
working-directory: ./example-project
13 changes: 10 additions & 3 deletions example-project/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ const logger = new Logtail(process.argv[2], { sendLogsToConsoleOutput: true });
// Usage

// Send debug level log using the debug() method
const debugLog = logger.debug("I am using Better Stack!");
const debugLog = logger.debug(`I am using Better Stack! (${process.title} v${process.versions?.[process.title]})`);

// Send info level log using the info() method
const infoLog = logger.info("An interesting event occurred!");
Expand Down Expand Up @@ -50,8 +50,15 @@ try {

// Logging methods are async function returning Promises
Promise.all([debugLog, infoLog, warningLog, errorLog]).then(
// OnResolve write message
function() {
console.log("All done! You can check your logs now.")
console.info("All done! You can check your logs now.");

console.log("Logs created: ", logger.logged);
console.log("Successfully synced logs: ", logger.synced);

if (logger.logged !== logger.synced) {
console.error("Not all logs have been synced!");
process.exit(1);
}
}
);