Skip to content

cargo fmt ✨

cargo fmt ✨ #145

Workflow file for this run

name: Linux Distribution Test Pipeline
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
services:
mongodb:
image: mongo:5.0.6
ports:
- 27017:27017
options: >-
--health-cmd mongo
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
MONGO_INITDB_ROOT_USERNAME: root
MONGO_INITDB_ROOT_PASSWORD: pass
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup .env file
run: |
cp .env.example .env
- name: Build and run server container
run: |
docker build -t server -f images/server-ci.Dockerfile .
docker run -d --network host --name server-container server
- name: Wait for server to start
run: |
TIMEOUT=60
ELAPSED=0
until curl --output /dev/null --silent --fail http://localhost:3000; do
if [ "$ELAPSED" -ge "$TIMEOUT" ]; then
echo "Server did not start within $TIMEOUT seconds. But continuing..."
exit 0
fi
echo "Waiting for server..."
sleep 5
ELAPSED=$((ELAPSED + 5))
done
echo "Server is up!"
continue-on-error: true
- name: Build and run Ubuntu 24.04 container
run: |
docker build -t ubuntu24.04 -f images/ubuntu24.04.Dockerfile scripts/
docker run --name ubuntu24.04-test --network host ubuntu24.04 || true
- name: Build and run Fedora 42 container
run: |
docker build -t fedora42 -f images/fedora42.Dockerfile scripts/
docker run --name fedora42-test --network host fedora42 || true
- name: Build and run Debian 12 container
run: |
docker build -t debian12 -f images/debian12.Dockerfile scripts/
docker run --name debian12-test --network host debian12 || true
- name: Build and run Ubuntu 24.04 container for checking multiple package support
run: |
docker build -t ubuntu24.04-multi -f images/ubuntu24.04-multi-package.Dockerfile scripts/
docker run --name ubuntu24.04-multitest --network host ubuntu24.04-multi || true
- name: Build and run Fedora 42 container for checking multiple package support
run: |
docker build -t fedora42 -f images/fedora42-multi-package.Dockerfile scripts/
docker run --name fedora42-multitest --network host fedora42 || true
- name: Build and run Debian 12 container for checking multiple package support
run: |
docker build -t debian12-multi -f images/debian12-multi-package.Dockerfile scripts/
docker run --name debian12-multitest --network host debian12-multi || true
- name: Build and run OpenSuse Tumbleweed container for checking multiple package support
run: |
docker build -t tumbleweed-multi -f images/tumbleweed-multi-package.Dockerfile scripts/
docker run --name tumbleweed-multitest --network host tumbleweed-multi || true
- name: Check server logs
run: |
docker logs server-container || true
- name: Check client containers' statuses
run: |
if [ "$(docker inspect -f '{{.State.ExitCode}}' ubuntu24.04-test)" -ne 0 ]; then
echo "Test on Ubuntu 24.04 failed"
exit 1
fi
if [ "$(docker inspect -f '{{.State.ExitCode}}' fedora42-test)" -ne 0 ]; then
echo "Test on Fedora 42 failed"
exit 1
fi
if [ "$(docker inspect -f '{{.State.ExitCode}}' debian12-test)" -ne 0 ]; then
echo "Test on Debian 12 failed"
exit 1
fi
if [ "$(docker inspect -f '{{.State.ExitCode}}' ubuntu24.04-multitest)" -ne 0 ]; then
echo "Test on Ubuntu 23.04 for multiple package support failed"
exit 1
fi
if [ "$(docker inspect -f '{{.State.ExitCode}}' fedora42-multitest)" -ne 0 ]; then
echo "Test on Fedora 42 failed multiple package support failed"
exit 1
fi
if [ "$(docker inspect -f '{{.State.ExitCode}}' debian12-multitest)" -ne 0 ]; then
echo "Test on Debian 12 for multiple package support failed"
exit 1
fi
if [ "$(docker inspect -f '{{.State.ExitCode}}' tumbleweed-multitest)" -ne 0 ]; then
echo "Test on OpenSuse Tumbleweed for multiple package support failed"
exit 1
fi