Skip to content
This repository was archived by the owner on Jan 15, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
83 changes: 83 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: Build

on:
workflow_call:

jobs:
crud-py:
runs-on: ubuntu-latest
defaults:
run:
working-directory: python
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.13'

- name: Install dependencies
run: |
pip install -r requirements.txt

- name: Build (validate import paths)
run: python src/server.py --check

crud-ts:
runs-on: ubuntu-latest
defaults:
run:
working-directory: typescript
steps:
- name: Checkout code
uses: actions/checkout@v4

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

- name: Install dependencies
run: npm ci

- name: Build project
run: npm run build

crud-go:
runs-on: ubuntu-latest
defaults:
run:
working-directory: go
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24'

- name: Download dependencies
run: go mod download

- name: Build binary
run: go build -o bin/app ./src

crud-rs:
runs-on: ubuntu-latest
defaults:
run:
working-directory: rust
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
rust-version: '1.87'

- name: Build project
run: cargo build --release
86 changes: 8 additions & 78 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,81 +4,11 @@ on:
pull_request:

jobs:
build-crud-py:
runs-on: ubuntu-24.04
defaults:
run:
working-directory: python
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.13'

- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt

- name: Build (validate import paths)
run: python src/server.py --check

build-crud-ts:
runs-on: ubuntu-24.04
defaults:
run:
working-directory: typescript
steps:
- name: Checkout code
uses: actions/checkout@v4

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

- name: Install dependencies
run: npm ci

- name: Build project
run: npm run build

build-crud-go:
runs-on: ubuntu-24.04
defaults:
run:
working-directory: go
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24'

- name: Download dependencies
run: go mod download

- name: Build binary
run: go build -o bin/app ./src

build-crud-rs:
runs-on: ubuntu-24.04
defaults:
run:
working-directory: rust
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
rust-version: '1.87'

- name: Build project
run: cargo build --release
build:
name: Build apps
uses: ./.github/workflows/build.yml

test:
needs: build
name: Test apps
uses: ./.github/workflows/test.yml
83 changes: 83 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
name: Test

on:
workflow_call:

jobs:
crud-py:
runs-on: ubuntu-latest
defaults:
run:
working-directory: python
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.13'

- name: Install dependencies
run: |
pip install -r requirements.txt

- name: Run tests
run: pytest tests/

crud-ts:
runs-on: ubuntu-latest
defaults:
run:
working-directory: typescript
steps:
- name: Checkout code
uses: actions/checkout@v4

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

- name: Install dependencies
run: npm ci

- name: Run tests
run: npm run test

crud-go:
runs-on: ubuntu-latest
defaults:
run:
working-directory: go
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: '1.24'

- name: Download dependencies
run: go mod download

- name: Run tests
run: go test ./tests

crud-rs:
runs-on: ubuntu-latest
defaults:
run:
working-directory: rust
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up Rust
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
rust-version: '1.87'

- name: Run tests
run: cargo test
Loading
Loading