Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
b81c424
feat: lint
tevanburen Apr 2, 2026
a3bb32c
Merge branch 'dev' of github.com:SEMOSS/Template into example-dev
tevanburen Apr 2, 2026
fd4b5d2
Merge branch 'dev' of github.com:SEMOSS/Template into example-dev
tevanburen Apr 2, 2026
a7dd94e
feat: add files
rithvik-doshi Apr 3, 2026
2489ddf
fix: some more stuff here
rithvik-doshi Apr 3, 2026
656b06a
fix: unit tests
rithvik-doshi Apr 3, 2026
0c2277d
fix: nvm needed to pnpm i
rithvik-doshi Apr 3, 2026
082a5e2
fix: fix
rithvik-doshi Apr 3, 2026
b60d1e3
fix: this should fail
rithvik-doshi Apr 3, 2026
64af383
fix: try this
rithvik-doshi Apr 3, 2026
2722d90
fix: test docs
rithvik-doshi Apr 7, 2026
942683a
fix: tsconfig
tevanburen Apr 7, 2026
325fed6
feat: workflow on all PRs
tevanburen Apr 7, 2026
e716df6
Merge branch 'dev' of github.com:SEMOSS/Template into example-dev
tevanburen Apr 7, 2026
4d146dd
fix: upgrade lockfile
tevanburen Apr 7, 2026
27c731d
Merge branch 'example-dev' of github.com:SEMOSS/Template into example…
tevanburen Apr 7, 2026
6d59e4e
fix: remove javadoc
rithvik-doshi Apr 8, 2026
5a56ade
Merge branch 'dev' of github.com:SEMOSS/Template into example-dev
tevanburen Apr 13, 2026
3578f17
feat: up
tevanburen Apr 13, 2026
5cd15b8
Merge branch 'dev' of github.com:SEMOSS/Template into example-dev
tevanburen Apr 13, 2026
74b3a6f
docs: changing comments
rithvik-doshi Apr 13, 2026
6fa80b1
Merge branch 'example-dev' into example-dev-changes
rithvik-doshi Apr 13, 2026
760fee8
Merge branch 'dev' of github.com:SEMOSS/Template into example-dev
tevanburen Apr 13, 2026
77a7f9a
Merge branch 'example-dev' into example-dev-changes
rithvik-doshi Apr 13, 2026
60d5016
Merge branch 'dev' of github.com:SEMOSS/Template into example-dev
tevanburen Apr 13, 2026
9859107
Merge branch 'example-dev' of github.com:SEMOSS/Template into example…
tevanburen Apr 13, 2026
6c2f000
docs: comments in pom
rithvik-doshi Apr 13, 2026
b41848a
Merge branch 'example-dev-changes' of https://github.com/SEMOSS/Templ…
rithvik-doshi Apr 13, 2026
a75bab7
fix: remove unneccessary repo
rithvik-doshi Apr 13, 2026
c76b13e
Merge pull request #64 from SEMOSS/example-dev-changes
tevanburen Apr 13, 2026
4e6b140
fix: bump snapshot
rithvik-doshi Apr 14, 2026
6b7528b
Revert "fix: remove unneccessary repo"
rithvik-doshi Apr 14, 2026
3708da7
ci: use codebuild and switch container to use ecr public mirror
rithvik-doshi Apr 17, 2026
d1e275b
fix: try fix
rithvik-doshi Apr 17, 2026
4b95bbb
fix: pre-commit setup
rithvik-doshi Apr 17, 2026
e255511
fix: pre-commit setup
rithvik-doshi Apr 17, 2026
6b1aa01
fix: pre-commit setup
rithvik-doshi Apr 17, 2026
af74149
fix: pre-commit setup
rithvik-doshi Apr 17, 2026
2224c18
fix: theoretically fixed pre-commit, start to fix unit-test
rithvik-doshi Apr 17, 2026
7026176
docs: docs
rithvik-doshi Apr 17, 2026
d842845
chore: move into folder
rithvik-doshi Apr 17, 2026
93b4d5a
Revert "docs: docs"
rithvik-doshi Apr 17, 2026
129bafe
chore: rename
rithvik-doshi Apr 17, 2026
4861899
ci: try caching jdk
rithvik-doshi Apr 17, 2026
6dffb36
Merge pull request #69 from SEMOSS/code-build
rithvik-doshi Apr 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
54 changes: 54 additions & 0 deletions .github/workflows/.disabled/pre-commit.yml.disabled
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# -----------------------------------------------------------------------------
# DISABLED WORKFLOW (kept for reference)
#
# This is the default pre-commit workflow intended to run on GitHub-hosted
# `ubuntu-latest` runners. It has been disabled by renaming the file to end in
# `.yml.disabled` so GitHub Actions will not discover or execute it. The active
# workflow used by this repo is `pre-commit.yml`, which targets the SEMOSS
# self-hosted CodeBuild runner (`codebuild-semoss-github-runner-...`).
#
# To restore this default workflow (e.g., if migrating back to GitHub-hosted
# runners), rename this file back to `pre-commit-default.yml` and remove or
# rename the self-hosted variant.
# -----------------------------------------------------------------------------

name: Pre-commit

on:
pull_request:
workflow_dispatch:

jobs:
pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24'

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Install dependencies and run frontend linting
run: |
if [ -d "client" ]; then
pnpm install
pnpm exec biome format --write && pnpm exec biome lint
else
echo "No client directory found, skipping frontend linting"
fi

- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: '3.12.9'

# Official pre-commit action handles caching automatically
- uses: pre-commit/action@v3.0.1
with:
extra_args: --all-files --show-diff-on-failure
73 changes: 73 additions & 0 deletions .github/workflows/.disabled/unit-test.yml.disabled
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
# -----------------------------------------------------------------------------
# DISABLED WORKFLOW (kept for reference)
#
# This is the default unit-test workflow intended to run on GitHub-hosted
# `ubuntu-latest` runners. It has been disabled by renaming the file to end in
# `.yml.disabled` so GitHub Actions will not discover or execute it. The active
# workflow used by this repo is `unit-test.yml`, which targets the SEMOSS
# self-hosted CodeBuild runner (`codebuild-semoss-github-runner-...`).
#
# To restore this default workflow (e.g., if migrating back to GitHub-hosted
# runners), rename this file back to `unit-test-default.yml` and remove or
# rename the self-hosted variant.
# -----------------------------------------------------------------------------

name: Run Unit Tests

on:
pull_request:
workflow_dispatch:
inputs:
snapshot:
description: 'CI version snapshot'
required: true
default: '5.3.0-SNAPSHOT'
type: choice
options:
- '5.3.0-SNAPSHOT'
# Add other snapshot versions as needed here!
clean_install:
description: 'Run `mvn clean install -U` to force-update dependencies'
required: true
default: false
type: boolean

jobs:
test:
name: Run Test Suite
runs-on: ubuntu-latest
container: maven:3.9.9-amazoncorretto-21-debian
env:
SNAPSHOT: ${{ inputs.snapshot || '5.3.0-SNAPSHOT' }}
CLEAN_INSTALL: ${{ inputs.clean_install || 'false' }}

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

- name: Cache Maven packages
id: cache-maven
uses: actions/cache@v4
with:
path: /root/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-${{ env.SNAPSHOT }}
restore-keys: |
${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-
${{ runner.os }}-maven-

- name: Maven Install
if: steps.cache-maven.outputs.cache-hit != 'true' || env.CLEAN_INSTALL == 'true'
run: |
echo "Clean install: ${CLEAN_INSTALL}"
echo "Version snapshot: ${SNAPSHOT}"
if [ "${CLEAN_INSTALL}" = "true" ]; then
echo "Running mvn clean install with -U flag"
mvn -B clean install -U -DskipTests=true -Dci.version="${SNAPSHOT}"
else
echo "Running mvn install without -U flag"
mvn -B install -DskipTests=true -Dci.version="${SNAPSHOT}"
fi

- name: Run Unit Tests
run: mvn -B ${{ steps.cache-maven.outputs.cache-hit == 'true' && '-o' || '' }} test -Dci.version="${SNAPSHOT}"

88 changes: 88 additions & 0 deletions .github/workflows/pre-commit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
name: Pre-commit

on:
pull_request:
workflow_dispatch:

jobs:
pre-commit:
runs-on: codebuild-semoss-github-runner-${{ github.run_id }}-${{ github.run_attempt }}
container: public.ecr.aws/docker/library/python:3.12-bookworm
steps:
- uses: actions/checkout@v4

- name: Install pnpm
uses: pnpm/action-setup@v4
with:
version: 10

- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: '24'
cache: 'pnpm'
cache-dependency-path: 'client/pnpm-lock.yaml'

- name: Install dependencies and run frontend linting
run: |
if [ -d "client" ]; then
pnpm install
pnpm exec biome format --write && pnpm exec biome lint
else
echo "No client directory found, skipping frontend linting"
fi

# Python 3.12 is provided by the container
- name: Compute cache keys
id: keys
run: |
echo "pre-commit=$(sha256sum .pre-commit-config.yaml | cut -d' ' -f1)" >> "$GITHUB_OUTPUT"

- name: Cache pre-commit hook environments
uses: actions/cache@v4
with:
path: ~/.cache/pre-commit
key: pre-commit-py3.12-${{ steps.keys.outputs.pre-commit }}
restore-keys: |
pre-commit-py3.12-

- name: Cache uv downloads
uses: actions/cache@v4
with:
path: |
~/.cache/uv
~/.local/share/uv
key: uv-py3.12-${{ runner.os }}
restore-keys: |
uv-py3.12-

- name: Cache OpenJDK 17
id: cache-jdk
uses: actions/cache@v4
with:
path: /usr/lib/jvm/java-17-openjdk-amd64
key: jdk-17-bookworm-${{ runner.os }}

- name: Install OpenJDK 17 headless (required by pretty-format-java hook)
if: steps.cache-jdk.outputs.cache-hit != 'true'
run: |
apt-get update
apt-get install -y --no-install-recommends openjdk-17-jre-headless

- name: Set up Java environment
run: |
echo "JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64" >> "$GITHUB_ENV"
echo "/usr/lib/jvm/java-17-openjdk-amd64/bin" >> "$GITHUB_PATH"
java -version

- name: Install uv
run: |
if ! command -v uv >/dev/null 2>&1; then
curl -LsSf https://astral.sh/uv/install.sh | sh
fi
echo "$HOME/.local/bin" >> "$GITHUB_PATH"

- name: Run pre-commit
run: |
uv tool install pre-commit
uv tool run pre-commit run --all-files --show-diff-on-failure
73 changes: 73 additions & 0 deletions .github/workflows/unit-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
name: Run Unit Tests

on:
pull_request:
workflow_dispatch:
inputs:
snapshot:
description: 'CI version snapshot'
required: true
default: '5.3.0-SNAPSHOT'
type: choice
options:
- '5.3.0-SNAPSHOT'
# Add other snapshot versions as needed here!
clean_install:
description: 'Run `mvn clean install -U` to force-update dependencies'
required: true
default: false
type: boolean

jobs:
test:
name: Run Test Suite
runs-on: codebuild-semoss-github-runner-${{ github.run_id }}-${{ github.run_attempt }}
container: public.ecr.aws/docker/library/maven:3.9.9-amazoncorretto-21-debian
env:
SNAPSHOT: ${{ inputs.snapshot || '5.3.0-SNAPSHOT' }}
CLEAN_INSTALL: ${{ inputs.clean_install || 'false' }}

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

# Computes a cache key from the root pom.xml. This project is a single-module
# Maven project, so hashing the root pom.xml alone is sufficient.
#
# For a multi-module Maven project, hash every pom.xml in the tree instead:
# run: echo "hash=$(find . -name pom.xml -not -path '*/target/*' -print0 \
# | sort -z | xargs -0 sha256sum | sha256sum | cut -d' ' -f1)" >> "$GITHUB_OUTPUT"
#
# Note: we compute the hash in a shell step instead of using the built-in
# hashFiles() expression because hashFiles() fails on this self-hosted
# CodeBuild runner due to a workspace-path resolution issue.
- name: Compute pom.xml hash
id: pom-hash
run: echo "hash=$(sha256sum pom.xml | cut -d' ' -f1)" >> "$GITHUB_OUTPUT"

- name: Cache Maven packages
id: cache-maven
uses: actions/cache@v4
with:
path: /root/.m2/repository
key: ${{ runner.os }}-maven-${{ steps.pom-hash.outputs.hash }}-${{ env.SNAPSHOT }}
restore-keys: |
${{ runner.os }}-maven-${{ steps.pom-hash.outputs.hash }}-
${{ runner.os }}-maven-

- name: Maven Install
if: steps.cache-maven.outputs.cache-hit != 'true' || env.CLEAN_INSTALL == 'true'
run: |
echo "Clean install: ${CLEAN_INSTALL}"
echo "Version snapshot: ${SNAPSHOT}"
if [ "${CLEAN_INSTALL}" = "true" ]; then
echo "Running mvn clean install with -U flag"
mvn -B clean install -U -DskipTests=true -Dci.version="${SNAPSHOT}"
else
echo "Running mvn install without -U flag"
mvn -B install -DskipTests=true -Dci.version="${SNAPSHOT}"
fi

- name: Run Unit Tests
run: mvn -B ${{ steps.cache-maven.outputs.cache-hit == 'true' && '-o' || '' }} test -Dci.version="${SNAPSHOT}"

2 changes: 2 additions & 0 deletions .husky/commit-msg
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Run pre-commit hooks for commit-msg stage
pre-commit run --hook-stage commit-msg --commit-msg-filename "$1"
12 changes: 12 additions & 0 deletions .husky/pre-commit
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Lint FE code
echo "Formatting and linting FE code..."
pnpm exec lint-staged

# Capture list of staged files
STAGED_FILES=$(git diff --name-only --cached)

# Format BE code
echo "Formatting BE code..."
pre-commit run --all-files

# You may want to consider also running `pre-commit autoupdate` periodically to keep hooks updated.
65 changes: 65 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v6.0.0
hooks:
- id: check-merge-conflict
- id: end-of-file-fixer
files: '^(java/.*\.java|py.*\.py)$'
- id: trailing-whitespace
files: '^(java/.*\.java|py.*\.py)$'
- id: mixed-line-ending
args: ['--fix=auto']
files: '^(java/.*\.java|py.*\.py)$'
- id: check-yaml
- repo: https://github.com/macisamuele/language-formatters-pre-commit-hooks
rev: v2.15.0
hooks:
- id: pretty-format-java
args: [--autofix, --google-java-formatter-version=1.28.0]
files: '^java/.*\.java$'
- repo: https://github.com/commitizen-tools/commitizen
rev: v3.10.0
hooks:
- id: commitizen
stages: [commit-msg]
- repo: https://github.com/psf/black
rev: 23.9.1
hooks:
- id: black
language_version: python3
files: '^py.*\.py$'
- repo: https://github.com/pycqa/isort
rev: 5.12.0
hooks:
- id: isort
args: ['--profile', 'black']
files: '^py.*\.py$'
- repo: https://github.com/pre-commit/mirrors-mypy
rev: v1.18.2
hooks:
- id: mypy
files: '\.py$'
args: [
"--ignore-missing-imports",
"--show-error-codes",
"--explicit-package-bases",
"--allow-untyped-defs",
"--allow-incomplete-defs",
"--allow-untyped-calls",
"--no-strict-optional",
"--disable-error-code=misc",
"--disable-error-code=no-any-return",
"--disable-error-code=name-defined",
"--disable-error-code=attr-defined"
]
additional_dependencies: [ # Continue to add dependencies here that have mypy extensions, such as pydantic
"types-requests",
"types-toml",
"pandas-stubs",
"numpy"
]
- repo: https://github.com/pamoller/xmlformatter
rev: v0.2.8
hooks:
- id: xml-formatter
files: '^.*\.xml$'
Loading
Loading