Initial commit with CI/CD blueprint
Some checks failed
Automated Container Build / build-and-push (push) Failing after 5s
CI / Backend (Python) (push) Failing after 9s
CI / Frontend (TypeScript) (push) Failing after 7s

This commit is contained in:
Elijah 2026-07-15 16:12:53 -07:00
commit bed2e6cfb6
3 changed files with 539 additions and 0 deletions

View file

@ -0,0 +1,25 @@
name: Automated Container Build
on:
push:
branches:
- main
jobs:
build-and-push:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Log into Local Registry
run: |
echo "${{ secrets.FORGEJO_PAT }}" | docker login git.elijahkuntz.com -u "${{ gitea.actor }}" --password-stdin
- name: Build and Push Image
run: |
# Force the entire image path string to lowercase dynamically
IMAGE_PATH=$(echo "git.elijahkuntz.com/${{ gitea.actor }}/${{ github.event.repository.name }}:latest" | tr '[:upper:]' '[:lower:]')
docker build -t "$IMAGE_PATH" .
docker push "$IMAGE_PATH"

71
.forgejo/workflows/ci.yml Normal file
View file

@ -0,0 +1,71 @@
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
backend:
name: Backend (Python)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python 3.12
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install dependencies
working-directory: backend
run: |
pip install -e ".[dev]"
- name: Lint (ruff)
working-directory: backend
run: ruff check .
- name: Type check (mypy)
working-directory: backend
run: mypy app/
- name: Test (pytest)
working-directory: backend
run: pytest --tb=short -q
env:
PAPERJET_DATABASE_PATH: ./test.sqlite
PAPERJET_PDF_STORAGE_PATH: ./test_pdfs
PAPERJET_THUMBNAILS_PATH: ./test_thumbs
frontend:
name: Frontend (TypeScript)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Node.js 22
uses: actions/setup-node@v4
with:
node-version: "22"
cache: "npm"
cache-dependency-path: frontend/package-lock.json
- name: Install dependencies
working-directory: frontend
run: npm ci
- name: Lint (eslint)
working-directory: frontend
run: npm run lint
- name: Type check (tsc)
working-directory: frontend
run: npx tsc -b
- name: Test (vitest)
working-directory: frontend
run: npx vitest run