Skip to content

Commit

Permalink
reorg
Browse files Browse the repository at this point in the history
  • Loading branch information
neonwatty committed Nov 7, 2024
1 parent 498427a commit 3f5199f
Show file tree
Hide file tree
Showing 213 changed files with 240 additions and 468 deletions.
57 changes: 57 additions & 0 deletions .github/workflows/pro-app-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: "DockerBuild"

on:
push:
pull_request:
branches: ["pro-beta"]
paths:
- "meme_search_pro/meme_search_app/**"
jobs:
Build_And_Push_App:
runs-on: ubuntu-22.04
permissions:
contents: read
packages: write

steps:
- name: Checkout
uses: actions/checkout@v2

- name: Log in to Github Docker Image Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.TOKEN_GITHUB }}

# Uncomment to use Docker Hub
# - name: Login to Docker Hub
# uses: docker/login-action@v3
# with:
# username: ${{ secrets.USERNAME_DOCKERHUB }}
# password: ${{ secrets.TOKEN_DOCKERHUB }}

- name: Docker Meta
id: meta
uses: docker/metadata-action@v4
with:
images: |
ghcr.io/${{ github.actor }}/test
# ${{ secrets.DOCKERHUB_USERNAME }}/meme-search
tags: type=ref,event=tag
flavor: latest=true

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set Buildx
uses: docker/setup-buildx-action@v3

- name: Build and Upload for AMD64 and ARM64
uses: docker/build-push-action@v4
with:
context: ./meme_search_pro/meme_search_app
platforms: linux/amd64,linux/arm64
push: true
tags: "tag1" # ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
122 changes: 122 additions & 0 deletions .github/workflows/pro-app-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
name: rails tests for meme search app

on:
workflow_dispatch:
pull_request:
push:
branches: ["pro-beta"]
paths:
- "meme_search_pro/meme_search_app/**"

jobs:
scan_ruby:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: .ruby-version
bundler-cache: false
working-directory: ./meme_search_pro/meme_search_app

- name: Install dependencies
run: gem install bundler && bundle install
working-directory: ./meme_search_pro/meme_search_app

- name: Scan for common Rails security vulnerabilities using static analysis
run: bin/brakeman -w3 --no-pager
working-directory: ./meme_search_pro/meme_search_app

scan_js:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: .ruby-version
bundler-cache: false
working-directory: ./meme_search_pro/meme_search_app

- name: Install dependencies
run: gem install bundler && bundle install
working-directory: ./meme_search_pro/meme_search_app

- name: Scan for security vulnerabilities in JavaScript dependencies
working-directory: ./meme_search_pro/meme_search_app
run: gem uninstall error_highlight -v 0.3.0 && bin/importmap audit

lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: .ruby-version
bundler-cache: false
working-directory: ./meme_search_pro/meme_search_app

- name: Install dependencies
run: gem install bundler && bundle install
working-directory: ./meme_search_pro/meme_search_app

- name: Lint code for consistent style
run: gem uninstall error_highlight -v 0.3.0 && bin/rubocop -f github
working-directory: ./meme_search_pro/meme_search_app

test:
runs-on: ubuntu-latest

services:
meme-search-db:
image: pgvector/pgvector:pg17
env:
POSTGRES_DB: meme_search
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
- 5432:5432
options: --health-cmd="pg_isready -U postgres" --health-interval=10s --health-timeout=5s --health-retries=3

steps:
- name: Install packages
run: sudo apt-get update && sudo apt-get install --no-install-recommends -y google-chrome-stable curl libjemalloc2 libvips postgresql-client

- name: Checkout code
uses: actions/checkout@v4

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: .ruby-version
bundler-cache: false
working-directory: ./meme_search_pro/meme_search_app

- name: Install dependencies
run: gem install bundler && bundle install
working-directory: ./meme_search_pro/meme_search_app

- name: Run tests
working-directory: ./meme_search_pro/meme_search_app
env:
RAILS_ENV: test
DATABASE_URL: postgres://postgres:postgres@localhost:5432
run: bin/rails db:test:prepare test test:system

- name: Keep screenshots from failed system tests
uses: actions/upload-artifact@v4
if: failure()
with:
name: screenshots
path: ${{ github.workspace }}/tmp/screenshots
if-no-files-found: ignore
47 changes: 0 additions & 47 deletions .github/workflows/python-app.yml

This file was deleted.

File renamed without changes.
47 changes: 47 additions & 0 deletions .github/workflows/standard-app-tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python

name: Python application

on:
pull_request:
branches: ["main"]
paths-ignore:
- "**/README.md"
- "**/CONTRIBUTING.md"
- "**LICENSE"

jobs:
ruff:
name: lint with ruff
runs-on: ubuntu-latest
timeout-minutes: 3
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v2
- uses: chartboost/ruff-action@v1
with:
args: "format --check"
config: .ruff.toml
test:
name: run pytest
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.test
pip install -r requirements.txt
- name: Run pytest
run: |
PYTHONPATH=. python3.10 -m pytest tests/test_app.py &&
PYTHONPATH=. python3.10 -m pytest tests/utilities/test_imgs.py &&
PYTHONPATH=. python3.10 -m pytest tests/utilities/test_query.py
# PYTHONPATH=. python3.10 -m pytest tests/utilities/test_add_remove.py ## requires large runner
22 changes: 11 additions & 11 deletions docker-compose-images.yml → docker-compose-pro.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
version: "3.8"

services:
rails_app:
image: ghcr.io/neonwatty/test:latest
container_name: meme_search_rails_app
meme_search_pro:
image: ghcr.io/neonwatty/meme-search-pro-app:latest
container_name: meme_search_pro
environment:
- DATABASE_URL=postgres://postgres:postgres@meme-search-db:5432/meme_search_production
- DATABASE_URL=postgres://postgres:postgres@meme-search-pro-db:5432/meme_search
ports:
- "3000:3000"
depends_on:
Expand All @@ -14,14 +14,14 @@ services:
volumes:
- ./memes/:/rails/public/memes

image_to_text_app:
image: ghcr.io/neonwatty/test2:latest
image_to_text_generator:
image: ghcr.io/neonwatty/image-to-text-generator:latest
container_name: image_to_text_generator
ports:
- 8000:8000
volumes:
- ./memes/:/app/public/memes
- ./data/image_to_text_app:/app/db
container_name: meme_search_image_to_text_app
deploy:
resources:
limits: # <-- roughly tested min memory for cpu usage
Expand All @@ -32,13 +32,13 @@ services:
# count: 1
# capabilities: [gpu]

meme-search-db:
meme-search-pro-db:
image: pgvector/pgvector:pg17
container_name: meme-search-db # note: must use - and not _ as ActiveRecord uses URI::RFC2396_Parser to parse database URLs
container_name: meme-search-pro-db # note: must use - and not _ as ActiveRecord uses URI::RFC2396_Parser to parse database URLs
volumes:
- ./data/meme-search-db:/var/lib/postgresql/data
- ./data/meme-search-pro-db:/var/lib/postgresql/data
environment:
POSTGRES_DB: meme_search_production
POSTGRES_DB: meme_search
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
ports:
Expand Down
53 changes: 0 additions & 53 deletions docker-compose.yaml

This file was deleted.

File renamed without changes.
File renamed without changes.
File renamed without changes
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ group :development do
gem "web-console"

# Highlight the fine-grained location where an error occurred [https://github.com/ruby/error_highlight]
gem "error_highlight", ">= 0.4.0", platforms: [ :ruby ]
# gem "error_highlight", ">= 0.4.0", platforms: [ :ruby ]
end

group :test do
Expand Down
Loading

0 comments on commit 3f5199f

Please sign in to comment.