Skip to content

feat: bump to 0.2.0 — rewrite README, scope release to core package #7

feat: bump to 0.2.0 — rewrite README, scope release to core package

feat: bump to 0.2.0 — rewrite README, scope release to core package #7

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
release:
name: Build and publish release
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Read version from tag
id: version
run: |
TAG="${GITHUB_REF_NAME}"
VERSION="${TAG#v}"
echo "tag=${TAG}" >> "$GITHUB_OUTPUT"
echo "version=${VERSION}" >> "$GITHUB_OUTPUT"
echo "tarball=adjutant-${TAG}.tar.gz" >> "$GITHUB_OUTPUT"
- name: Verify VERSION file matches tag
run: |
FILE_VERSION="$(cat VERSION | tr -d '[:space:]')"
TAG_VERSION="${{ steps.version.outputs.version }}"
if [ "$FILE_VERSION" != "$TAG_VERSION" ]; then
echo "ERROR: VERSION file says '${FILE_VERSION}' but tag is '${TAG_VERSION}'"
echo "Update the VERSION file and re-tag."
exit 1
fi
echo "VERSION file matches tag: ${TAG_VERSION}"
- name: Build release tarball
run: |
TAG="${{ steps.version.outputs.tag }}"
TARBALL="${{ steps.version.outputs.tarball }}"
STAGING="adjutant-${TAG}"
mkdir -p "${STAGING}"
# Include only the core adjutant package and essential files.
# Excludes: web dashboard, docs site, personal data, CI artifacts.
rsync -a \
--exclude='.git/' \
--exclude='.github/' \
--exclude='web/' \
--exclude='site/' \
--exclude='integrations/' \
--exclude='docs/reference/' \
--exclude='docs/web/' \
--exclude='docs/plans/' \
--exclude='adjutant.yaml' \
--exclude='identity/soul.md' \
--exclude='identity/heart.md' \
--exclude='identity/registry.md' \
--exclude='news_config.json' \
--exclude='journal/' \
--exclude='knowledge_bases/' \
--exclude='state/' \
--exclude='insights/' \
--exclude='photos/' \
--exclude='screenshots/' \
--exclude='.env' \
--exclude='PAUSED' \
--exclude='opencode.json' \
--exclude='.claude/' \
--exclude='tmp/' \
--exclude='memory/' \
. "${STAGING}/"
tar -czf "${TARBALL}" "${STAGING}/"
echo "Built ${TARBALL} ($(du -sh "${TARBALL}" | cut -f1))"
sha256sum "${TARBALL}" > "${TARBALL}.sha256"
echo "Checksum: $(cat "${TARBALL}.sha256")"
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
tag_name: ${{ steps.version.outputs.tag }}
name: Adjutant ${{ steps.version.outputs.tag }}
body: |
## Install
```bash
git clone https://github.com/${{ github.repository }}.git /path/to/adjutant
cd /path/to/adjutant
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/adjutant setup
```
Or download the tarball:
```bash
curl -fsSL https://github.com/${{ github.repository }}/releases/download/${{ steps.version.outputs.tag }}/${{ steps.version.outputs.tarball }} -o adjutant.tar.gz
tar xzf adjutant.tar.gz
cd adjutant-${{ steps.version.outputs.tag }}
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/adjutant setup
```
## What's included
This release contains the Adjutant framework — Python source, setup wizard, templates, prompts, docs, and tests.
It does **not** include the web dashboard, docs site, personal identity files, journals, or configuration.
The setup wizard will create those for you.
## Requirements
- Python 3.11+
- [OpenCode](https://opencode.ai) or [Claude Code CLI](https://docs.anthropic.com/en/docs/claude-code)
- Telegram bot token
See [README](https://github.com/${{ github.repository }}#readme) for full documentation.
files: |
${{ steps.version.outputs.tarball }}
${{ steps.version.outputs.tarball }}.sha256
draft: false
prerelease: ${{ contains(steps.version.outputs.tag, '-') }}