diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 130f5c3..2e4c726 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -22,15 +22,6 @@ jobs: with: python-version: 3.11 # Use Python version 3.11 - # Cache dependencies - - name: Cache pip - uses: actions/cache@v3 - with: - path: ~/.cache/pip - key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} - restore-keys: | - ${{ runner.os }}-pip- - # Install build dependencies - name: Install build dependencies run: | @@ -41,12 +32,51 @@ jobs: - name: Install dependencies run: pip install -r requirements.txt # Install dependencies from requirements.txt + test: + needs: setup + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Python 3.11 + uses: actions/setup-python@v3 + with: + python-version: 3.11 + + # Install build dependencies + - name: Install build dependencies + run: | + python -m pip install --upgrade pip + pip install setuptools==58.0.4 wheel + + - name: Install dependencies + run: pip install -r requirements.txt + + # Run test suite + - name: Run tests + run: pytest # Execute tests using pytest + security: needs: setup runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v3 + + - name: Set up Python 3.11 + uses: actions/setup-python@v3 + with: + python-version: 3.11 + + # Install build dependencies + - name: Install build dependencies + run: | + python -m pip install --upgrade pip + pip install setuptools==58.0.4 wheel + + - name: Install dependencies + run: pip install -r requirements.txt # Run security checks - name: Run security checks @@ -59,11 +89,26 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v4 + uses: actions/checkout@v3 + + - name: Set up Python 3.11 + uses: actions/setup-python@v3 + with: + python-version: 3.11 + + # Install build dependencies + - name: Install build dependencies + run: | + python -m pip install --upgrade pip + pip install setuptools==58.0.4 wheel + + - name: Install dependencies + run: pip install -r requirements.txt # Build the Docker image - name: Build Docker image run: docker build -t transcendence . + run: docker build -t transcendence . deploy: needs: build @@ -84,9 +129,4 @@ jobs: # Conditional deployment based on branch - name: Deploy to server - if: github.ref == 'refs/heads/main' run: ssh user@server "docker pull ${DOCKER_HUB_USERNAME}/transcendence:latest && docker-compose up --build -d" - - - name: Deploy to development server - if: github.ref == 'refs/heads/develop' - run: ssh user@dev-server "docker pull ${DOCKER_HUB_USERNAME}/transcendence:latest && docker-compose up --build -d" diff --git a/docker-compose.yml b/docker-compose.yml index ce34efe..db0e595 100755 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -21,7 +21,11 @@ services: image: redis:alpine networks: - transcendence_network - # command: ["CMD", "redis-cli", "--raw", "incr", "ping"] + healthcheck: + test: ["CMD", "redis-cli", "ping"] + interval: 30s + timeout: 10s + retries: 5 user-service: container_name: user-service