Skip to content

Commit

Permalink
Add integration tests
Browse files Browse the repository at this point in the history
This patch adds a simple integration test run on GitHub Actions. This is
running the exporter and checking that metrics exists and values are
properly read.
  • Loading branch information
lkiesow committed Jan 14, 2025
1 parent 0e8cf2d commit 9bc2e36
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 7 deletions.
14 changes: 7 additions & 7 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
name: bandit and flake8
name: Linting

on:
push:
branches-ignore:
- 'dependabot/**'
- "dependabot/**"
pull_request:

jobs:
Expand All @@ -14,11 +14,11 @@ jobs:
# https://endoflife.date/python
# https://github.com/actions/runner-images
python-version:
- '3.9'
- '3.10'
- '3.11'
- '3.12'
- '3.13'
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"

steps:
- uses: actions/checkout@v4
Expand Down
69 changes: 69 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
name: Integration tests

on:
push:
branches-ignore:
- "dependabot/**"
pull_request:

jobs:
test:
runs-on: ubuntu-latest
strategy:
matrix:
# https://endoflife.date/python
# https://github.com/actions/runner-images/blob/main/images/linux/Ubuntu2204-Readme.md#python
python-version:
- "3.9"
- "3.10"
- "3.11"
- "3.12"
- "3.13"

steps:
- name: start mongodb
run: docker run --name mongo -p 127.0.0.1:27017:27017 -d mongo:latest

- uses: actions/checkout@v4

- name: set up python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- run: pip install -r requirements.txt

- run: pip install flake8 bandit

- name: add test data to mongodb
run: |
echo 'db.messages.insertOne({
user: "John Doe",
createdAt: ISODate("3025-01-15T21:31:09.989Z"),
updatedAt: ISODate("3025-01-15T21:31:09.989Z")
});
db.users.insertOne({
username: "jdoe"
});
quit;' | docker exec -i mongo mongosh LibreChat
- name: run exporter
env:
MONGODB_URI: "mongodb://127.0.0.1:27017/"
run: python metrics.py &> exporter.log &

- name: get metrics
run: >
curl -fisS --retry 60 --retry-delay 1 --retry-all-errors
http://localhost:8000 -o metrics
- name: show metrics
if: ${{ always() }}
run: cat metrics

- name: show log
if: ${{ always() }}
run: cat exporter.log

- name: probe for valid output
run: grep 'librechat_users_total 1.0' metrics

0 comments on commit 9bc2e36

Please sign in to comment.