wip
This commit is contained in:
commit
d7800f4d82
12 changed files with 378 additions and 0 deletions
155
README.md
Normal file
155
README.md
Normal file
|
|
@ -0,0 +1,155 @@
|
|||
# Just Build System
|
||||
|
||||
A modular build system using Just that supports container builds, Python tooling, and more.
|
||||
|
||||
## Installation
|
||||
|
||||
There are several ways to use this build system:
|
||||
|
||||
### Method 1: Global Installation with Symlinks
|
||||
|
||||
1. Clone this repository to a permanent location:
|
||||
```bash
|
||||
git clone https://github.com/yourusername/wjust ~/.wjust
|
||||
```
|
||||
|
||||
2. In your project, create the module directories and symlink the justfiles:
|
||||
```bash
|
||||
# Create module directories
|
||||
mkdir -p container python
|
||||
|
||||
# Create symlinks to the global justfiles
|
||||
ln -s ~/.wjust/container/justfile container/justfile
|
||||
ln -s ~/.wjust/python/justfile python/justfile
|
||||
```
|
||||
|
||||
3. Create your project's `justfile`:
|
||||
```makefile
|
||||
# Import modules
|
||||
mod container
|
||||
mod python
|
||||
|
||||
# Override or add project-specific recipes here
|
||||
default:
|
||||
@just --list
|
||||
```
|
||||
|
||||
4. Create required files:
|
||||
```bash
|
||||
# For container module
|
||||
echo "registry.example.com/myproject" > container/name
|
||||
|
||||
# Optional: Set version
|
||||
echo "0.1.0" > version
|
||||
# Or use __about__.py with __version__ = "0.1.0"
|
||||
```
|
||||
|
||||
### Method 2: Local Copy (Traditional)
|
||||
|
||||
Copy the entire module directories to your project:
|
||||
```bash
|
||||
cp -r ~/.wjust/container ~/.wjust/python .
|
||||
```
|
||||
|
||||
Then create your `justfile` as shown above.
|
||||
|
||||
### Method 3: Remote Import (Advanced)
|
||||
|
||||
For advanced users who want to pull updates directly from the repository:
|
||||
|
||||
```bash
|
||||
# Create a script to update modules
|
||||
cat > update-just-modules.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
REPO="https://raw.githubusercontent.com/yourusername/wjust/main"
|
||||
mkdir -p {container,python}
|
||||
curl -o container/justfile "$REPO/container/justfile"
|
||||
curl -o python/justfile "$REPO/python/justfile"
|
||||
EOF
|
||||
|
||||
chmod +x update-just-modules.sh
|
||||
```
|
||||
|
||||
Then run `./update-just-modules.sh` whenever you want to update the modules.
|
||||
|
||||
## Quick Start
|
||||
|
||||
1. Choose an installation method from above
|
||||
2. Run `just` to see available commands:
|
||||
```bash
|
||||
just
|
||||
|
||||
Available recipes:
|
||||
container ... # Container management
|
||||
python ... # Python tools
|
||||
```
|
||||
|
||||
## Container Module
|
||||
|
||||
The container module provides standardized container building and deployment.
|
||||
|
||||
### Setup
|
||||
|
||||
1. Create a `container/name` file with your container registry path:
|
||||
```
|
||||
registry.example.com/myproject
|
||||
```
|
||||
|
||||
2. Version will be detected from (in order):
|
||||
- Any `__about__.py` file containing `__version__ = "x.y.z"`
|
||||
- A `version` file in the project root
|
||||
- Defaults to "0.0.0" if neither exists
|
||||
|
||||
3. Create your `container/Containerfile`:
|
||||
```dockerfile
|
||||
FROM python:3.11
|
||||
# Add your container configuration
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
||||
```bash
|
||||
# Show available commands
|
||||
just
|
||||
|
||||
# Build container
|
||||
just container build
|
||||
|
||||
# Push container to registry
|
||||
just container deploy
|
||||
```
|
||||
|
||||
### Customization
|
||||
|
||||
The container module provides these recipes:
|
||||
- `build`: Builds the container with version tag
|
||||
- `deploy`: Pushes the container to the registry
|
||||
|
||||
## Python Module
|
||||
|
||||
The Python module provides linting with Ruff.
|
||||
|
||||
### Usage
|
||||
|
||||
```bash
|
||||
# Run linter
|
||||
just python lint
|
||||
|
||||
# Run linter with auto-fix
|
||||
just python lint-fix
|
||||
```
|
||||
|
||||
## Adding New Modules
|
||||
|
||||
1. Create a new directory for your module
|
||||
2. Add a `justfile` in the module directory
|
||||
3. Import it in your root `justfile` with `mod mymodule`
|
||||
|
||||
## Environment Variables
|
||||
|
||||
- `VERSION`: Automatically set from `__about__.py` or `version` file
|
||||
- `CONTAINER_NAME`: Set from `container/name` file
|
||||
|
||||
## Contributing
|
||||
|
||||
Feel free to submit issues and pull requests for additional modules or improvements.
|
||||
Loading…
Add table
Add a link
Reference in a new issue