Skip to content

CI/CD

CI/CD #17

Workflow file for this run

name: CI/CD
on: [push, pull_request]
jobs:
build-and-test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.12"]
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Cache dependencies
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install dependencies
run: make install
# Uncomment these steps if you need to run code formatting and linting
# - name: Run code formatting check
# run: make format
# - name: Run linting
# run: make lint
# - name: Lint Dockerfiles
# run: |
# docker run --rm -i hadolint/hadolint < Dockerfile.app
# docker run --rm -i hadolint/hadolint < Dockerfile.ollama
- name: Install Docker Compose
run: |
sudo apt-get update
sudo apt-get install -y docker-compose
- name: Build and run Docker containers
timeout-minutes: 5
env:
AT_USERNAME: ${{ secrets.AT_USERNAME }}
AT_API_KEY: ${{ secrets.AT_API_KEY }}
run: make docker_run
- name: Force Stop Containers
if: always() # Run even if previous step fails
run: |
docker ps -q | xargs -r docker stop
docker ps -aq | xargs -r docker rm
- name: Cleanup Docker resources
if: always()
run: |
docker-compose down --remove-orphans --timeout 30
docker system prune -af --volumes
docker container prune -f
docker image prune -af
docker volume prune -f
docker network prune -f