diff --git a/.github/workflows/docker_pr_test.yml b/.github/workflows/docker_pr_test.yml index 3109e3f8f..7d8b8db3b 100644 --- a/.github/workflows/docker_pr_test.yml +++ b/.github/workflows/docker_pr_test.yml @@ -12,16 +12,34 @@ jobs: name: Test docker-compose up with build runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Run docker compose up run: docker compose -f docker-compose_build.yml up -d - - name: Wait and check log + - name: Check backend container is running + run: | + sleep 30 + if [ "$(docker ps | grep 4cat_backend)" ]; then + echo "Docker 4cat_backend container is running..." + else + echo -e "Docker 4cat_backend container is not running...\nPrinting 4cat_backend logs:\n\n$(docker container logs 4cat_backend)" + exit 1 + fi + - name: Check frontend container is running + run: | + sleep 10 + if [ "$(docker ps | grep 4cat_frontend)" ]; then + echo "Docker 4cat_frontend container is running..." + else + echo -e "Docker 4cat_frontend container is not running...\nPrinting 4cat_frontend logs:\n\n$(docker container logs 4cat_frontend)" + exit 1 + fi + - name: Check 4CAT backend log for expected INFO message run: | test_case=" INFO at api.py:65: Local API listening for requests at backend:4444" sleep 30 && var=$(docker exec 4cat_backend tail -n 1 logs/backend_4cat.log) echo "::group::Backend test" if [ "$(echo "$var" | tr "|" "\n" | sed -n '2p')" = "$test_case" ]; then - echo "Backend running as expected" + echo "4CAT backend running as expected" else echo "::error::Backend failed to start" echo "Test:$test_case" @@ -32,7 +50,11 @@ jobs: - name: Print log on failure if: failure() run: | - docker cp 4cat_backend:/usr/src/app/logs/backend_4cat.log ./backend_4cat.log - echo "::group::Backend logs" - cat backend_4cat.log - echo "::endgroup::" + if [ "$(docker ps | grep 4cat)" ]; then + docker cp 4cat_backend:/usr/src/app/logs/backend_4cat.log ./backend_4cat.log + echo "::group::Backend logs" + cat backend_4cat.log + echo "::endgroup::" + else + echo "Docker containers not running; check logs in previous steps" + fi