Skip to content

Using the newest image from docker hub #13

Using the newest image from docker hub

Using the newest image from docker hub #13

Workflow file for this run

name: CI Pipeline
on:
# Runs the pipeline on every push or a pull request to the main branch
push:
branches:
- main
pull_request:
branches:
- main
jobs:
## Linting the code
lint:
name: Code Quality Checks (Linting)
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4 # Todo: check what version to use
with:
python-version: '3.10'
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install flake8 # Linter for Python
- name: Run Linter (flake8) on all Python Files
run: |
flake8 .e
# ## Building the docker image
# docker_build:
# name: Build and Push Docker Image
# runs-on: ubuntu-latest
# needs: lint
# steps:
# - name: Checkout Code
# uses: actions/checkout@v3
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v2
# - name: Login to Docker Hub
# uses: docker/login-action@v2
# with:
# username: ${{ secrets.DOCKERHUB_USERNAME }}
# password: ${{ secrets.DOCKERHUB_PASSWORD }}
# - name: Build and Push Docker image
# run: |
# docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/logicgpt:${{ github.sha }} .
# docker push ${{ secrets.DOCKERHUB_USERNAME }}/logicgpt:${{ github.sha }}
## Testing if the API works correctly
test_api:
name: Test API
# needs: docker_build # Only run this after the Docker build is successful
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Start the API with Docker Compose
run: |
echo "DOCKERHUB_USERNAME=${{ secrets.DOCKERHUB_USERNAME }}" > .env
# defining image tag manually, in case didn't run docker_build
echo "DOCKER_IMAGE_TAG=ffb120a49495b896072b545614d717235ca924b4" > .env
# # defining image tag based on commit-id
# echo "DOCKER_IMAGE_TAG=$(git rev-parse HEAD)" > .env
docker compose up --build
- name: Wait for API to be Ready
run: |
until curl -s http://localhost:8000 | grep "Hello"; do
echo "Waiting for API to be ready..."
sleep 5
done
- name: Run API Tests
run: |
cd app
pytest test_api.py
- name: Tear Down Docker Compose
run: |
docker compose down