Skip to content

Merge pull request #32 from vectornguyen76/dev-cicd #182

Merge pull request #32 from vectornguyen76/dev-cicd

Merge pull request #32 from vectornguyen76/dev-cicd #182

name: development
on:
pull_request:
branches:
- develop
push:
branches:
- develop
jobs:
build-push-image-search:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
# - name: Cache Python dependencies
# uses: actions/cache@v2
# with:
# path: ~/.cache/pip
# key: ${{ runner.os }}-pip-${{ hashFiles('./image-search-engine/requirements.txt') }}
# restore-keys: |
# ${{ runner.os }}-pip-image-search
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.9
cache: "pip"
- name: Install Dependencies
run: pip install -r ./image-search-engine/requirements.txt
- name: Run isort
run: isort --check-only --profile=black ./image-search-engine/.
- name: Run black
run: black --check ./image-search-engine/.
- name: Run flake8
run: flake8 --ignore=E501,W503,F401 ./image-search-engine
# - name: Run Pylint
# run: pylint ./image-search-engine/*.py
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
id: docker_hub_auth
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v4
with:
context: ./image-search-engine
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/image-search-engine:latest
cache-from: type=gha
cache-to: type=gha,mode=max
build-push-text-search:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.9
cache: "pip"
- name: Install Dependencies
run: pip install -r ./text-search-engine/requirements.txt
- name: Run isort
run: isort --check-only ./text-search-engine/.
- name: Run black
run: black --check ./text-search-engine/.
- name: Run flake8
run: flake8 --ignore=E501,W503,F401 ./text-search-engine
# - name: Run Pylint
# run: pylint ./image-search-engine/*.py
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
id: docker_hub_auth
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v4
with:
context: ./text-search-engine
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/text-search-engine:latest
cache-from: type=gha
cache-to: type=gha,mode=max
build-push-backend:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.10"
cache: "pip"
- name: Install Dependencies
run: pip install -r ./backend/requirements.txt
- name: Run isort
run: isort --check-only --profile=black ./backend/.
- name: Run black
run: black --check ./backend/.
- name: Run flake8
run: flake8 --ignore=E501,W503,F401 ./backend
# - name: Run Pylint
# run: pylint ./backend/*.py
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
id: docker_hub_auth
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and push
uses: docker/build-push-action@v4
with:
context: ./backend
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/backend-search-engine:latest
cache-from: type=gha
cache-to: type=gha,mode=max
build-push-frontend:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
- name: Login to Docker Hub
id: docker_hub_auth
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Add env variable to env file
run: |
echo GOOGLE_CLIENT_ID=${{ secrets.GOOGLE_CLIENT_ID }} >> ./frontend/.env
echo GOOGLE_CLIENT_SECRET=${{ secrets.GOOGLE_CLIENT_SECRET }} >> ./frontend/.env
echo NEXTAUTH_SECRET=${{ secrets.NEXTAUTH_SECRET }} >> ./frontend/.env
- name: Build and push frontend image
uses: docker/build-push-action@v4
with:
context: ./frontend
file: ./frontend/Dockerfile
push: true
tags: ${{ secrets.DOCKERHUB_USERNAME }}/frontend-search-engine:latest
cache-from: type=gha
cache-to: type=gha,mode=max