Skip to content

Commit f503b1d

Browse files
committed
chore: rip out changesets, auto-publish docker on main
Two cleanups now that the repo has no publishable npm packages. 1. Remove the changesets toolchain entirely. There are no more npm packages to version or publish (backend/frontend/ shared are all private). Keeping changesets around for private-package changelog bookkeeping was dead weight and actively harmful — it fast- failed the release workflow when a pre-existing changeset targeted a deleted package. Delete: - .github/workflows/release.yml (ran changesets/action on main) - .changeset/ (config.json, README, any remaining .md files) - @changesets/cli from devDependencies - changeset-check job from ci.yml - changeset / version-packages / release scripts from package.json 2. Auto-publish the docker image on main merges. Before PR #1528 the release workflow triggered docker.yml via workflow_dispatch when the manifest plugin version bumped. That hook is gone. Without it, the docker image only rebuilds on manual runs, which is a bad default now that docker is the only self-hosting path. Update docker.yml to: - Add `push: branches: [main]` with the same paths filter the PR trigger already uses. - Let the publish job run on both workflow_dispatch and push events. - Use different metadata-action tag strategies per event: * push/auto: latest + sha-<short> * workflow_dispatch with blank version: same as push * workflow_dispatch with semver input: {version}, {major}.{minor}, {major} (explicit release cuts, rarely needed) Also rewrite the "Releases" section of CLAUDE.md so it matches the new reality.
1 parent 4043fae commit f503b1d

File tree

9 files changed

+25
-806
lines changed

9 files changed

+25
-806
lines changed

.changeset/README.md

Lines changed: 0 additions & 21 deletions
This file was deleted.

.changeset/config.json

Lines changed: 0 additions & 11 deletions
This file was deleted.

.changeset/readme-providers-table.md

Lines changed: 0 additions & 4 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -140,20 +140,3 @@ jobs:
140140
flags: shared
141141
directory: packages/shared/coverage
142142
fail_ci_if_error: false
143-
144-
changeset-check:
145-
name: Changeset status
146-
runs-on: ubuntu-latest
147-
if: github.event_name == 'pull_request' && github.head_ref != 'changeset-release/main'
148-
steps:
149-
- uses: actions/checkout@v4
150-
with:
151-
fetch-depth: 0
152-
- uses: actions/setup-node@v4
153-
with:
154-
node-version: 22
155-
cache: npm
156-
- run: npm ci
157-
- name: Check changeset status
158-
run: npx changeset status --since=origin/main
159-
continue-on-error: true

.github/workflows/docker.yml

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,22 @@ on:
44
workflow_dispatch:
55
inputs:
66
version:
7-
description: "Version to publish (e.g. 5.38.1)"
8-
required: true
7+
description: "Optional semver tag to publish (e.g. 5.38.1). Leave blank for a plain latest+sha build."
8+
required: false
99
type: string
10+
push:
11+
branches: [main]
12+
paths:
13+
- "docker/Dockerfile"
14+
- ".dockerignore"
15+
- "docker/docker-compose.yml"
16+
- "docker/DOCKER_README.md"
17+
- "packages/backend/**"
18+
- "packages/frontend/**"
19+
- "packages/shared/**"
20+
- "package.json"
21+
- "package-lock.json"
22+
- "turbo.json"
1023
pull_request:
1124
branches: [main]
1225
paths:
@@ -47,7 +60,7 @@ jobs:
4760

4861
publish:
4962
name: Build & Publish
50-
if: github.event_name == 'workflow_dispatch'
63+
if: github.event_name == 'workflow_dispatch' || github.event_name == 'push'
5164
runs-on: ubuntu-latest
5265
permissions:
5366
contents: read
@@ -69,10 +82,11 @@ jobs:
6982
with:
7083
images: manifestdotbuild/manifest
7184
tags: |
72-
type=semver,pattern={{version}},value=${{ inputs.version }}
73-
type=semver,pattern={{major}}.{{minor}},value=${{ inputs.version }}
74-
type=semver,pattern={{major}},value=${{ inputs.version }}
75-
type=sha
85+
type=raw,value=latest,enable=${{ github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && inputs.version == '') }}
86+
type=sha,prefix=sha-,enable=${{ github.event_name == 'push' || (github.event_name == 'workflow_dispatch' && inputs.version == '') }}
87+
type=semver,pattern={{version}},value=${{ inputs.version }},enable=${{ github.event_name == 'workflow_dispatch' && inputs.version != '' }}
88+
type=semver,pattern={{major}}.{{minor}},value=${{ inputs.version }},enable=${{ github.event_name == 'workflow_dispatch' && inputs.version != '' }}
89+
type=semver,pattern={{major}},value=${{ inputs.version }},enable=${{ github.event_name == 'workflow_dispatch' && inputs.version != '' }}
7690
7791
- uses: docker/build-push-action@v6
7892
id: build

.github/workflows/release.yml

Lines changed: 0 additions & 37 deletions
This file was deleted.

CLAUDE.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -481,13 +481,12 @@ All pricing comes from a single source:
481481

482482
## Releases
483483

484-
There are **no publishable npm packages** in this repo anymore. `packages/backend`, `packages/frontend`, and `packages/shared` are all `private: true`. Manifest ships exclusively as the Docker image at `manifestdotbuild/manifest` (built from `docker/Dockerfile`).
485-
486-
Changesets are still installed and wired into the release workflow for internal `CHANGELOG.md` bookkeeping on private packages — they are **not** required on every PR. Use `npx changeset add --empty` if you want to record a changelog entry for a private-package change, otherwise skip it.
484+
There are **no publishable npm packages** in this repo. `packages/backend`, `packages/frontend`, and `packages/shared` are all `private: true`. Manifest ships exclusively as the Docker image at `manifestdotbuild/manifest` (built from `docker/Dockerfile`). Changesets are **not** used anywhere — don't add `.changeset/*.md` files or run `changeset` commands.
487485

488486
The Docker image is built and published via `.github/workflows/docker.yml`:
489-
- **PR**: validates the Docker build on changes to `docker/`, `.dockerignore`, `packages/backend/`, `packages/frontend/`, `packages/shared/`, or root `package.json`/`turbo.json`.
490-
- **Manual publish**: `workflow_dispatch` with a `version` input, run by a maintainer when a new image tag should be pushed.
487+
- **PR**: validates the Docker build (no push) on changes to `docker/`, `.dockerignore`, `packages/backend/`, `packages/frontend/`, `packages/shared/`, or root `package.json` / `turbo.json`.
488+
- **Push to `main`**: rebuilds and publishes on the same paths filter, tagging the image as `latest` and `sha-<short>` so every merged PR produces a fresh image automatically.
489+
- **Manual publish**: `workflow_dispatch` with an optional `version` input. With no input it behaves the same as a push build (`latest` + `sha-<short>`). With a semver input it also adds `{version}`, `{major}.{minor}`, and `{major}` tags for explicit release cuts.
491490

492491
## Code Coverage (Codecov)
493492

0 commit comments

Comments
 (0)