Skip to content

Commit

Permalink
feat: initial commit
Browse files Browse the repository at this point in the history
  • Loading branch information
StijnGoossens committed Sep 30, 2023
0 parents commit 715fc90
Show file tree
Hide file tree
Showing 17 changed files with 2,793 additions and 0 deletions.
32 changes: 32 additions & 0 deletions .cruft.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
{
"template": "https://github.com/radix-ai/poetry-cookiecutter",
"commit": "64ab29926a713562adf14d8eba5e6c0df17e6265",
"checkout": null,
"context": {
"cookiecutter": {
"package_name": "llm-app-eval",
"package_description": "Evaluates LLM-based applications.",
"package_url": "https://github.com/StijnGoossens/llm-app-eval",
"author_name": "Stijn Goossens",
"author_email": "[email protected]",
"python_version": "3.9",
"docker_image": "python:$PYTHON_VERSION-slim",
"development_environment": "simple",
"with_conventional_commits": "1",
"with_fastapi_api": "0",
"with_jupyter_lab": "0",
"with_pydantic_typing": "0",
"with_sentry_logging": "0",
"with_streamlit_app": "1",
"with_typer_cli": "0",
"continuous_integration": "GitHub",
"docstring_style": "NumPy",
"private_package_repository_name": "",
"private_package_repository_url": "",
"__package_name_kebab_case": "llm-app-eval",
"__package_name_snake_case": "llm_app_eval",
"_template": "https://github.com/radix-ai/poetry-cookiecutter"
}
},
"directory": null
}
49 changes: 49 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"name": "llm-app-eval",
"dockerComposeFile": "../docker-compose.yml",
"service": "devcontainer",
"workspaceFolder": "/workspaces/${localWorkspaceFolderBasename}/",
"remoteUser": "user",
"overrideCommand": true,
"postStartCommand": "cp --update /opt/build/poetry/poetry.lock /workspaces/${localWorkspaceFolderBasename}/ && mkdir -p /workspaces/${localWorkspaceFolderBasename}/.git/hooks/ && cp --update /opt/build/git/* /workspaces/${localWorkspaceFolderBasename}/.git/hooks/",
"customizations": {
"vscode": {
"extensions": [
"charliermarsh.ruff",
"ms-python.python",
"ryanluker.vscode-coverage-gutters",
"tamasfe.even-better-toml",
"visualstudioexptteam.vscodeintellicode"
],
"settings": {
"coverage-gutters.coverageFileNames": [
"reports/coverage.xml"
],
"editor.codeActionsOnSave": {
"source.fixAll": true,
"source.organizeImports": true
},
"editor.formatOnSave": true,
"[toml]": {
"editor.formatOnSave": false
},
"editor.rulers": [
100
],
"files.autoSave": "onFocusChange",
"python.defaultInterpreterPath": "/opt/llm-app-eval-env/bin/python",
"python.formatting.provider": "black",
"python.linting.mypyEnabled": true,
"python.terminal.activateEnvironment": false,
"python.testing.pytestEnabled": true,
"ruff.importStrategy": "fromEnvironment",
"terminal.integrated.defaultProfile.linux": "zsh",
"terminal.integrated.profiles.linux": {
"zsh": {
"path": "/usr/bin/zsh"
}
}
}
}
}
}
22 changes: 22 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
version: 2

updates:
- package-ecosystem: github-actions
directory: /
schedule:
interval: monthly
commit-message:
prefix: "ci"
prefix-development: "ci"
include: "scope"
- package-ecosystem: pip
directory: /
schedule:
interval: monthly
commit-message:
prefix: "build"
prefix-development: "build"
include: "scope"
versioning-strategy: lockfile-only
allow:
- dependency-type: "all"
53 changes: 53 additions & 0 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: Deploy

on:
push:
tags:
- "v*.*.*"
workflow_dispatch:
inputs:
environment:
required: true
description: Deployment environment
default: development
type: choice
options:
- feature
- development
- test
- acceptance
- production

env:
DEFAULT_DEPLOYMENT_ENVIRONMENT: feature
DOCKER_REGISTRY: ghcr.io

jobs:
deploy:
runs-on: ubuntu-latest

if: startsWith(github.ref, 'refs/tags/v')

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

- name: Log in to the Docker registry
uses: docker/login-action@v2
with:
registry: ${{ env.DOCKER_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Set Docker image tag
run: echo "GIT_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV

- name: Build and push Docker image
uses: docker/build-push-action@v3
with:
context: .
push: true
tags: |
${{ env.DOCKER_REGISTRY }}/${{ github.repository_owner }}/${{ github.repository }}:${{ github.event.inputs.environment || env.DEFAULT_DEPLOYMENT_ENVIRONMENT }}
${{ env.DOCKER_REGISTRY }}/${{ github.repository_owner }}/${{ github.repository }}:${{ env.GIT_TAG }}
target: app
49 changes: 49 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: Test

on:
push:
branches:
- main
- master
pull_request:

jobs:
test:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
python-version: ["3.9"]

name: Python ${{ matrix.python-version }}

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

- name: Set up Node.js
uses: actions/setup-node@v3
with:
node-version: 18

- name: Install @devcontainers/cli
run: npm install --location=global @devcontainers/[email protected]

- name: Start Dev Container
env:
DOCKER_BUILDKIT: 1
run: |
git config --global init.defaultBranch main
PYTHON_VERSION=${{ matrix.python-version }} devcontainer up --workspace-folder .
- name: Lint package
run: devcontainer exec --workspace-folder . poe lint

- name: Test package
run: devcontainer exec --workspace-folder . poe test

- name: Upload coverage
uses: codecov/codecov-action@v3
with:
files: reports/coverage.xml
64 changes: 64 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
# Coverage.py
htmlcov/
reports/

# cruft
*.rej

# Data
*.csv*
*.dat*
*.pickle*
*.xls*
*.zip*
data/

# direnv
.envrc

# dotenv
.env

# Hypothesis
.hypothesis/

# Jupyter
*.ipynb
.ipynb_checkpoints/
notebooks/

# macOS
.DS_Store

# mypy
.dmypy.json
.mypy_cache/

# Node.js
node_modules/

# Poetry
.venv/
dist/

# PyCharm
.idea/

# pyenv
.python-version

# pytest
.pytest_cache/

# Python
__pycache__/
*.py[cdo]

# Ruff
.ruff_cache/

# Terraform
.terraform/

# VS Code
.vscode/
76 changes: 76 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
# https://pre-commit.com
default_install_hook_types: [commit-msg, pre-commit]
default_stages: [commit, manual]
fail_fast: true
repos:
- repo: meta
hooks:
- id: check-useless-excludes
- repo: https://github.com/pre-commit/pygrep-hooks
rev: v1.9.0
hooks:
- id: python-check-mock-methods
- id: python-use-type-annotations
- id: rst-backticks
- id: rst-directive-colons
- id: rst-inline-touching-normal
- id: text-unicode-replacement-char
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.3.0
hooks:
- id: check-added-large-files
- id: check-ast
- id: check-builtin-literals
- id: check-case-conflict
- id: check-docstring-first
- id: check-json
- id: check-merge-conflict
- id: check-shebang-scripts-are-executable
- id: check-symlinks
- id: check-toml
- id: check-vcs-permalinks
- id: check-xml
- id: check-yaml
- id: debug-statements
- id: destroyed-symlinks
- id: detect-private-key
- id: end-of-file-fixer
types: [python]
- id: fix-byte-order-marker
- id: mixed-line-ending
- id: name-tests-test
args: [--pytest-test-first]
- id: trailing-whitespace
types: [python]
- repo: local
hooks:
- id: commitizen
name: commitizen
entry: cz check
args: [--commit-msg-file]
require_serial: true
language: system
stages: [commit-msg]
- id: ruff
name: ruff
entry: ruff
args: ["--extend-fixable=F401,F841", "--fix-only"]
require_serial: true
language: system
types: [python]
- id: black
name: black
entry: black
require_serial: true
language: system
types: [python]
- id: poetry-check
name: poetry check
entry: poetry check
language: system
pass_filenames: false
- id: mypy
name: mypy
entry: mypy
language: system
types: [python]
Loading

0 comments on commit 715fc90

Please sign in to comment.