Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
chenpangpang
open-webui
Commits
167b5712
Commit
167b5712
authored
Apr 28, 2024
by
Jun Siang Cheah
Browse files
feat: add tests for db migration on sqlite, postgres, and mysql
parent
7bc17da5
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
122 additions
and
0 deletions
+122
-0
.github/workflows/integration-test.yml
.github/workflows/integration-test.yml
+122
-0
No files found.
.github/workflows/integration-test.yml
View file @
167b5712
...
@@ -53,3 +53,125 @@ jobs:
...
@@ -53,3 +53,125 @@ jobs:
name
:
compose-logs
name
:
compose-logs
path
:
compose-logs.txt
path
:
compose-logs.txt
if-no-files-found
:
ignore
if-no-files-found
:
ignore
migration_test
:
name
:
Run Migration Tests
runs-on
:
ubuntu-latest
services
:
postgres
:
image
:
postgres
env
:
POSTGRES_PASSWORD
:
postgres
options
:
>-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports
:
-
5432:5432
mysql
:
image
:
mysql
env
:
MYSQL_ROOT_PASSWORD
:
mysql
MYSQL_DATABASE
:
mysql
options
:
>-
--health-cmd "mysqladmin ping -h localhost"
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports
:
-
3306:3306
steps
:
-
name
:
Checkout Repository
uses
:
actions/checkout@v4
-
name
:
Set up Python
uses
:
actions/setup-python@v2
with
:
python-version
:
${{ matrix.python-version }}
-
name
:
Set up uv
uses
:
yezz123/setup-uv@v4
with
:
uv-venv
:
venv
-
name
:
Activate virtualenv
run
:
|
. venv/bin/activate
echo PATH=$PATH >> $GITHUB_ENV
-
name
:
Install dependencies
run
:
|
uv pip install -r backend/requirements.txt
-
name
:
Test backend with SQLite
id
:
sqlite
run
:
|
cd backend
WEBUI_SECRET_KEY=secret-key GLOBAL_LOG_LEVEL=debug uvicorn main:app --port "8080" --forwarded-allow-ips '*' &
UVICORN_PID=$!
# Wait up to 20 seconds for the server to start
for i in {1..20}; do
curl -s http://localhost:8080/api/config > /dev/null && break
sleep 1
if [ $i -eq 20 ]; then
echo "Server failed to start"
kill -9 $UVICORN_PID
exit 1
fi
done
# Check that the server is still running after 5 seconds
sleep 5
if ! kill -0 $UVICORN_PID; then
echo "Server has stopped"
exit 1
fi
-
name
:
Test backend with Postgres
if
:
success() || steps.sqlite.conclusion == 'failure'
run
:
|
cd backend
export DATABASE_URL=postgresql://postgres:postgres@localhost:5432/postgres
WEBUI_SECRET_KEY=secret-key GLOBAL_LOG_LEVEL=debug uvicorn main:app --port "8081" --forwarded-allow-ips '*' &
UVICORN_PID=$!
# Wait up to 20 seconds for the server to start
for i in {1..20}; do
curl -s http://localhost:8081/api/config > /dev/null && break
sleep 1
if [ $i -eq 20 ]; then
echo "Server failed to start"
kill -9 $UVICORN_PID
exit 1
fi
done
# Check that the server is still running after 5 seconds
sleep 5
if ! kill -0 $UVICORN_PID; then
echo "Server has stopped"
exit 1
fi
-
name
:
Test backend with MySQL
if
:
success() || steps.sqlite.conclusion == 'failure' || steps.postgres.conclusion == 'failure'
run
:
|
cd backend
export DATABASE_URL=mysql://root:mysql@localhost:3306/mysql
WEBUI_SECRET_KEY=secret-key GLOBAL_LOG_LEVEL=debug uvicorn main:app --port "8083" --forwarded-allow-ips '*' &
UVICORN_PID=$!
# Wait up to 20 seconds for the server to start
for i in {1..20}; do
curl -s http://localhost:8083/api/config > /dev/null && break
sleep 1
if [ $i -eq 20 ]; then
echo "Server failed to start"
kill -9 $UVICORN_PID
exit 1
fi
done
# Check that the server is still running after 5 seconds
sleep 5
if ! kill -0 $UVICORN_PID; then
echo "Server has stopped"
exit 1
fi
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment