Skip to content

Commit

Permalink
Merge pull request #32 from neonwatty/pro-beta
Browse files Browse the repository at this point in the history
Pro beta
  • Loading branch information
neonwatty authored Nov 8, 2024
2 parents dc12c76 + 31f471b commit 919da7d
Show file tree
Hide file tree
Showing 254 changed files with 5,629 additions and 312 deletions.
46 changes: 46 additions & 0 deletions .github/workflows/pro-app-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# name: "pro app build"
# on:
# workflow_dispatch:
# pull_request:
# push:
# branches: ["main"]
# paths:
# - "meme_search_pro/meme_search_app/**"

# jobs:
# Build_And_Push_App:
# runs-on: ubuntu-22.04
# permissions:
# contents: read
# packages: write

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

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

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

# - name: Print current working directory
# run: pwd # Prints the current working directory

# - name: Print root directory contents
# run: ls -l .

# - name: Print app directory contents
# run: ls -l ./meme_search

# - name: Build and Upload for AMD64 and ARM64
# uses: docker/build-push-action@v6
# with:
# context: ./meme_search_pro/meme_search_app
# platforms: linux/amd64,linux/arm64
# push: true
# tags: ghcr.io/neonwatty/meme_search_pro:latest
121 changes: 121 additions & 0 deletions .github/workflows/pro-app-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
name: rails tests for meme search pro app

on:
workflow_dispatch:
pull_request:
branches: ["main"]
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.

Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
name: 'DockerBuild'
name: "DockerBuild"

on:
push:
tags:
- 'v*'

workflow_dispatch:
# push:
# tags:
# - "v*"

jobs:
Build_And_Push:
runs-on: ubuntu-22.04
Expand Down Expand Up @@ -49,8 +50,8 @@ jobs:
- name: Build and Upload for AMD64 and ARM64
uses: docker/build-push-action@v4
with:
context: .
context: ./meme_search/
platforms: linux/amd64,linux/arm64
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
labels: ${{ steps.meta.outputs.labels }}
57 changes: 57 additions & 0 deletions .github/workflows/standard-app-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
name: python tests for meme search standard app

on:
workflow_dispatch:
pull_request:
branches: ["main"]
paths:
- "meme_search/meme_search_app/**"

jobs:
ruff:
name: lint with ruff
runs-on: ubuntu-latest
timeout-minutes: 3
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.12"

- name: Install Ruff and dependencies
run: |
python -m pip install --upgrade pip
pip install ruff
- name: Run Ruff linting
run: |
ruff format --check --config ./meme_search/.ruff.toml ./meme_search/meme_search_app
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@v4
with:
python-version: "3.10"

- name: Install dependencies
run: |
cd meme_search
python -m pip install --upgrade pip
pip install -r requirements.test
pip install -r requirements.txt
- name: Run pytest
run: |
cd meme_search &&
PYTHONPATH=. python3.10 -m pytest tests/test_app.py
# PYTHONPATH=. python3.10 -m pytest tests/utilities/test_add_remove.py ## requires large runner
Loading

0 comments on commit 919da7d

Please sign in to comment.