Skip to content

Commit e65228f

Browse files
authored
Merge pull request #12 from VectorInstitute/add_onboard_package
Add package for onboarding
2 parents b76eb54 + ad787ba commit e65228f

File tree

6 files changed

+915
-135
lines changed

6 files changed

+915
-135
lines changed

.github/workflows/publish.yml

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,81 @@
1+
name: Publish Package to PyPI
2+
3+
permissions:
4+
contents: write
5+
id-token: write
6+
7+
on:
8+
push:
9+
tags:
10+
- "v*"
11+
workflow_dispatch:
12+
13+
jobs:
14+
build-and-publish:
15+
name: Build and publish Python distribution to PyPI
16+
runs-on: ubuntu-latest
17+
18+
steps:
19+
- name: Checkout repository
20+
uses: actions/checkout@v4
21+
22+
- name: Install uv
23+
uses: astral-sh/setup-uv@v5
24+
with:
25+
version: "0.9.7"
26+
enable-cache: true
27+
28+
- name: Set up Python
29+
uses: actions/setup-python@v5
30+
with:
31+
python-version-file: ".python-version"
32+
33+
- name: Install the project
34+
run: uv sync --no-dev
35+
36+
- name: Build package
37+
run: uv build
38+
39+
- name: Verify package contents
40+
run: |
41+
echo "=== Contents of dist/ ==="
42+
ls -lh dist/
43+
echo ""
44+
echo "=== Wheel contents ==="
45+
unzip -l dist/*.whl || true
46+
echo ""
47+
echo "=== Tarball contents ==="
48+
tar -tzf dist/*.tar.gz || true
49+
50+
- name: Publish package to PyPI
51+
uses: pypa/gh-action-pypi-publish@release/v1
52+
with:
53+
password: ${{ secrets.PYPI_API_TOKEN }}
54+
verbose: true
55+
56+
- name: Create GitHub Release
57+
uses: ncipollo/release-action@v1
58+
with:
59+
artifacts: "dist/*"
60+
generateReleaseNotes: true
61+
body: |
62+
## Installation
63+
```bash
64+
pip install aieng-platform-onboard
65+
```
66+
67+
## Usage
68+
69+
### Basic Onboarding
70+
```bash
71+
onboard --bootcamp-name <bootcamp-name>
72+
```
73+
74+
### With Integration Tests
75+
If you have a test script to verify API keys:
76+
```bash
77+
onboard --bootcamp-name <bootcamp-name> --skip-test
78+
python path/to/test_keys.py
79+
```
80+
81+
Or let onboard run your test script automatically by placing it in the same directory as the CLI.

pyproject.toml

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[project]
2-
name = "aieng-platform"
2+
name = "aieng-platform-onboard"
33
version = "0.1.0"
4-
description = "Platform infrastructure and tooling for AI Engineering bootcamps"
4+
description = "CLI tool for onboarding participants to AI Engineering bootcamps"
55
readme = "README.md"
66
authors = [{name = "Vector AI Engineering", email = "[email protected]"}]
77
license = "Apache-2.0"
@@ -15,16 +15,25 @@ dependencies = [
1515
"weaviate-client>=4.0.0",
1616
"requests>=2.31.0",
1717
"python-dotenv>=1.0.0",
18-
"pandas>=2.0.0",
1918
"rich>=13.0.0",
2019
]
2120

21+
[project.scripts]
22+
onboard = "aieng_platform_onboard.cli:main"
23+
2224
[build-system]
2325
requires = ["hatchling"]
2426
build-backend = "hatchling.build"
2527

2628
[tool.hatch.build.targets.wheel]
27-
only-include = ["README.md"]
29+
packages = ["src/aieng_platform_onboard"]
30+
31+
[tool.hatch.build.targets.sdist]
32+
include = [
33+
"/src/aieng_platform_onboard",
34+
"/README.md",
35+
"/pyproject.toml",
36+
]
2837

2938
[dependency-groups]
3039
dev = [
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
"""
2+
aieng-platform-onboard: CLI tool for bootcamp participant onboarding.
3+
4+
This package provides a command-line interface for onboarding participants
5+
to AI Engineering bootcamps, handling authentication, API key distribution,
6+
and environment setup.
7+
"""
8+
9+
from aieng_platform_onboard.cli import main
10+
11+
12+
__all__ = ["main"]

0 commit comments

Comments
 (0)