added reset-function for tournament. Reset-function runs when tournam… #67
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Name of the workflow | |
name: CI Pipeline | |
# Events that trigger the workflow | |
on: | |
push: | |
branches: [ main, develop, mtoof ] # Include mtoof branch | |
pull_request: | |
branches: [ main, develop, mtoof ] # Include mtoof branch | |
# Define jobs in the workflow | |
jobs: | |
setup: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 # Checkout the repository code | |
# Set up Python environment | |
- name: Set up Python 3.11 | |
uses: actions/setup-python@v3 | |
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: | | |
python -m pip install --upgrade pip # Upgrade pip | |
pip install setuptools==58.0.4 wheel # Ensure setuptools and wheel are installed | |
# Install project dependencies | |
- name: Install dependencies | |
run: pip install -r requirements.txt # Install dependencies from requirements.txt | |
security: | |
needs: setup | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
# Run security checks | |
- name: Run security checks | |
run: | | |
pip install bandit # Install Bandit for security checks | |
bandit -r . # Run Bandit on the codebase | |
build: | |
needs: [setup, security] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
# Build the Docker image | |
- name: Build Docker image | |
run: docker build -t transcendence . | |
deploy: | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
# Log in to Docker Hub | |
- name: Deploy to Docker Hub | |
env: | |
DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }} | |
DOCKER_HUB_PASSWORD: ${{ secrets.DOCKER_HUB_PASSWORD }} | |
run: | | |
echo "${DOCKER_HUB_PASSWORD}" | docker login -u "${DOCKER_HUB_USERNAME}" --password-stdin | |
docker tag transcendence ${DOCKER_HUB_USERNAME}/transcendence:latest | |
docker push ${DOCKER_HUB_USERNAME}/transcendence:latest | |
# 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" |