Skip to content

Commit 78908a7

Browse files
committed
release: build and upload binaries on tags
1 parent 1f69631 commit 78908a7

2 files changed

Lines changed: 98 additions & 2 deletions

File tree

.github/workflows/release.yml

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags: ["v*"]
6+
7+
permissions:
8+
contents: write
9+
10+
jobs:
11+
build:
12+
name: build (${{ matrix.target }})
13+
runs-on: ${{ matrix.os }}
14+
strategy:
15+
fail-fast: false
16+
matrix:
17+
include:
18+
- os: ubuntu-latest
19+
target: x86_64-unknown-linux-gnu
20+
bin: target/release/rexos
21+
- os: macos-13
22+
target: x86_64-apple-darwin
23+
bin: target/release/rexos
24+
- os: macos-14
25+
target: aarch64-apple-darwin
26+
bin: target/release/rexos
27+
- os: windows-latest
28+
target: x86_64-pc-windows-msvc
29+
bin: target/release/rexos.exe
30+
31+
steps:
32+
- name: Checkout
33+
uses: actions/checkout@v4
34+
35+
- name: Install Rust
36+
uses: dtolnay/rust-toolchain@stable
37+
38+
- name: Rust cache
39+
uses: Swatinem/rust-cache@v2
40+
41+
- name: Build (release)
42+
run: cargo build --release -p rexos-cli --locked
43+
44+
- name: Package
45+
run: python3 scripts/package_release.py --version "${{ github.ref_name }}" --target "${{ matrix.target }}" --bin "${{ matrix.bin }}" --out-dir dist
46+
47+
- name: Upload artifact
48+
uses: actions/upload-artifact@v4
49+
with:
50+
name: dist-${{ matrix.target }}
51+
path: dist/*
52+
if-no-files-found: error
53+
54+
publish:
55+
name: publish (github release)
56+
runs-on: ubuntu-latest
57+
needs: build
58+
59+
steps:
60+
- name: Download artifacts
61+
uses: actions/download-artifact@v4
62+
with:
63+
path: dist
64+
merge-multiple: true
65+
66+
- name: List assets
67+
run: ls -la dist
68+
69+
- name: Publish GitHub Release
70+
uses: softprops/action-gh-release@v2
71+
with:
72+
files: dist/**
73+
generate_release_notes: true
74+

README.md

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,19 @@ RexOS is a long-running agent operating system: persistent memory, tool sandboxi
66

77
This repository is bootstrapped with a long-running harness (`features.json`, `init.sh`, `rexos-progress.md`). Work is tracked by flipping feature `passes` from `false``true`.
88

9+
## Install
10+
11+
### Option A: Download a prebuilt binary (recommended)
12+
13+
Download the archive for your OS from GitHub Releases, extract it, and put `rexos` (or `rexos.exe`) somewhere on your `PATH`.
14+
15+
### Option B: Build from source
16+
17+
```bash
18+
cargo build --release -p rexos-cli
19+
./target/release/rexos --help
20+
```
21+
922
## Quick start (dev)
1023

1124
```bash
@@ -21,15 +34,24 @@ RexOS defaults to `ollama` at `http://127.0.0.1:11434/v1` in `~/.rexos/config.to
2134
ollama serve
2235

2336
# 2) Init RexOS (creates ~/.rexos/config.toml + ~/.rexos/rexos.db)
24-
cargo run -p rexos-cli -- init
37+
rexos init
2538

2639
# 3) Run an agent session in a workspace directory
2740
mkdir -p /tmp/rexos-work
28-
cargo run -p rexos-cli -- agent run --workspace /tmp/rexos-work --prompt "Create hello.txt with the word hi"
41+
rexos agent run --workspace /tmp/rexos-work --prompt "Create hello.txt with the word hi"
2942
```
3043

3144
To run the optional Ollama smoke test: `REXOS_OLLAMA_MODEL=<your-model> cargo test -p rexos -- --ignored`.
3245

46+
## Releasing (maintainers)
47+
48+
Pushing a `v*` tag triggers the Release workflow which attaches prebuilt archives to a GitHub Release.
49+
50+
```bash
51+
git tag v0.1.0
52+
git push origin v0.1.0
53+
```
54+
3355
## Providers & routing
3456

3557
RexOS supports multiple LLM providers via drivers:

0 commit comments

Comments
 (0)