Skip to content
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
27 changes: 9 additions & 18 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,29 +54,19 @@ jobs:

# Secrets aren't readable in job-level `if:` expressions, so a tiny check
# job exposes whether Docker Hub credentials exist. The docker job is
# skipped cleanly (not failed) until they're configured.
check-docker-creds:
name: Check Docker credentials
runs-on: ubuntu-latest
outputs:
has-creds: ${{ steps.check.outputs.has }}
steps:
- id: check
run: echo "has=${{ secrets.DOCKERHUB_USERNAME != '' && secrets.DOCKERHUB_TOKEN != '' }}" >> "$GITHUB_OUTPUT"

# Publishes to the GitHub Container Registry using the workflow's own
# GITHUB_TOKEN (packages: write) — no external registry secrets needed.
publish-docker:
name: Push Docker image
name: Push Docker image (ghcr.io)
runs-on: ubuntu-latest
needs: check-docker-creds
if: needs.check-docker-creds.outputs.has-creds == 'true'
steps:
- uses: actions/checkout@v4

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: stretchcloud/campfire
images: ghcr.io/${{ github.repository }}
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
Expand All @@ -86,8 +76,9 @@ jobs:

- uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- uses: docker/build-push-action@v6
with:
Expand All @@ -101,8 +92,8 @@ jobs:
github-release:
name: Create GitHub Release
runs-on: ubuntu-latest
# Only the npm publish is required; the Docker image is optional and
# must not block a release when Docker Hub credentials are absent.
# Only the npm publish is required; the Docker image must not block a
# release if the image build fails.
needs: [publish-npm]
steps:
- uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion .release-please-manifest.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
".": "0.2.0"
".": "0.2.1"
}
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,13 @@

> Campfire began as a fork of [the-companion](https://github.com/The-Vibe-Company/companion) and diverged into a separate product. Pre-fork history (versions up to 0.42.0) lives in the upstream repository; Campfire's own releases start at 0.1.0.

## 0.2.1 (2026-07-07)

### Fixes

* **npm:** include the project README and LICENSE in the published tarball so the npm package page renders documentation (previously the package root had neither)
* **ci:** publish the Docker image to GitHub Container Registry (`ghcr.io/stretchcloud/campfire`) using the workflow's built-in token — the Docker Hub path required credentials that were never configured, so no image had ever been published

## 0.2.0 (2026-07-07)

### Features
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "the-campfire-workspace",
"version": "0.2.0",
"version": "0.2.1",
"private": true,
"description": "Workspace root for Campfire \u2014 the collaborative web platform for AI coding agents. The published package lives in web/.",
"scripts": {
Expand Down
4 changes: 4 additions & 0 deletions web/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

# Copied in by prepublishOnly for the npm tarball
README.md
LICENSE
4 changes: 2 additions & 2 deletions web/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "the-campfire",
"version": "0.2.0",
"version": "0.2.1",
"type": "module",
"description": "Campfire \u2014 collaborative web platform for AI coding agents. Run Claude Code, Codex, Goose, Aider, and more from one browser UI with real-time collaboration, permission voting, and automation.",
"license": "MIT",
Expand Down Expand Up @@ -45,7 +45,7 @@
"dev:vite": "vite",
"build": "vite build",
"start": "NODE_ENV=production bun server/index.ts",
"prepublishOnly": "bun run build",
"prepublishOnly": "cp ../README.md ../LICENSE . && bun run build",
"typecheck": "tsc --noEmit",
"test": "vitest run",
"test:watch": "vitest",
Expand Down
Loading