Alek/intfix (#898)

* Added working integration tests

* Uncomment integration tests

* Get rid of no root

* Changed caching rules.
This commit is contained in:
Alek Petuskey 2023-04-27 19:01:02 -07:00 committed by GitHub
parent 60323a3aec
commit bfb96b842f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 41 additions and 49 deletions

View File

@ -58,8 +58,7 @@ jobs:
key: python-${{ matrix.python-version }}-pydeps-${{ hashFiles('**/poetry.lock') }} key: python-${{ matrix.python-version }}-pydeps-${{ hashFiles('**/poetry.lock') }}
- name: Poetry Install - name: Poetry Install
run: poetry install --no-interaction --no-root run: poetry install --no-interaction
if: steps.cache-deps.outputs.cache-hit != 'true'
- name: Install Requirements - name: Install Requirements
working-directory: ./pynecone-examples/counter working-directory: ./pynecone-examples/counter
run: poetry run pip install -r requirements.txt run: poetry run pip install -r requirements.txt

View File

@ -58,16 +58,15 @@ jobs:
path: .venv path: .venv
key: python-${{ matrix.python-version }}-pydeps-${{ hashFiles('**/poetry.lock') }} key: python-${{ matrix.python-version }}-pydeps-${{ hashFiles('**/poetry.lock') }}
# - name: Poetry Install - name: Poetry Install
# run: poetry install --no-interaction --no-root run: poetry install --no-interaction
# if: steps.cache-deps.outputs.cache-hit != 'true' - name: Install Requirements
# - name: Install Requirements working-directory: ./pcweb
# working-directory: ./pcweb run: poetry run pip install -r requirements.txt && poetry run pip install googletrans
# run: poetry run pip install -r requirements.txt && poetry run pip install googletrans - name: Init Website
# - name: Init Website working-directory: ./pcweb
# working-directory: ./pcweb run: poetry run pc init
# run: poetry run pc init - name: Run Website and Check for errors
# - name: Run Website and Check for errors run: |
# run: | chmod +x ./scripts/integration.sh
# chmod +x ./scripts/integration.sh ./scripts/integration.sh ./pcweb prod
# ./scripts/integration.sh ./pcweb prod

View File

@ -1,41 +1,35 @@
GNU nano 4.8 run_bash.sh #!/bin/bash #!/bin/bash
cd "$1" # Change directory to the first argument passed to the script
curl -fsSL https://bun.sh/install | bash -s -- bun-v0.5.5 cd "$1" || exit 1
echo "Changed directory to $1"
set -e # Start the server in the background
if [ "$2" = "dev" ]; then poetry run pc run --env "$2" & pid=$!
timeout 2m poetry run pc run --env "$2" || exit 0 & sleep 50 echo "Started server with PID $pid"
else
timeout 5m poetry run pc run --env "$2" || exit 0 & sleep 250
fi
# set the HOST to request # Wait for ports 3000 and 8000 to become available
HOST="127.0.0.1" wait_time=0
FRONTEND_PORT="3000" while ! nc -z localhost 3000 || ! lsof -i :8000 >/dev/null; do
API_PORT="8000" if ! kill -0 "$pid" >/dev/null 2>&1; then
echo "Error: Server process with PID $pid exited early"
break
fi
if ((wait_time >= 120)); then
echo "Error: Timeout waiting for ports 3000 and 8000 to become available"
break
fi
sleep 5
((wait_time += 5))
echo "Waiting for ports 3000 and 8000 to become available (waited $wait_time seconds)..."
done
# make the curl request and save the response and HTTP status code # Check if the server is still running
RESPONSE=$(curl -s -w "\n%{http_code}" "$HOST:$FRONTEND_PORT") if kill -0 "$pid" >/dev/null 2>&1; then
echo "Integration test passed"
# extract the HTTP status code from the response kill -TERM $(pgrep -P "$pid")
HTTP_STATUS=$(echo "$RESPONSE" | tail -n1)
# check for errors based on the HTTP status code
if [[ $HTTP_STATUS -ge 400 ]]; then
echo "Error: HTTP status code $HTTP_STATUS"
exit 1
fi
# check for errors on API server
API_RESPONSE=$(curl --silent "$HOST:$API_PORT/ping")
if echo "$API_RESPONSE" | grep -q "pong"; then
echo "success with HTTP STATUS: $HTTP_STATUS"
exit 0 exit 0
else else
echo "Error starting API server" echo "Integration test failed"
exit 1 exit 1
fi fi