Docs: the repository lives at diffinery.com/codician/diffinery (#180)
* Docs: Sync to Diffinery runs only by hand since the cut-off * Docs: the repository's home is diffinery.com/codician/diffinery
- CI / Typecheck and bundleFailed
- CI / Unit tests (1/2)Failed
- CI / Unit tests (2/2)Failed
- End-to-end / End-to-end (agent reviews, tasks, Today)Failed
- End-to-end / End-to-end (git, PRs, Actions)Failed
- End-to-end / End-to-end (large pushes)Failed
- End-to-end / End-to-end (passkeys, registry, email)Failed
- End-to-end / End-to-end (real histories)Failed
- End-to-end / End-to-end (security)Failed
3 files changed+9−9
modifiedREADME.md+6−6View file
| @@ -59,17 +59,17 @@ | ||
| 59 | 59 | ## Deploying |
| 60 | 60 | |
| 61 | 61 | Diffinery deploys itself: this repository lives at |
| 62 | -`diffinery.com/codician-team/diffinery`, and every push to `main` there runs | |
| 62 | +`diffinery.com/codician/diffinery`, and every push to `main` there runs | |
| 63 | 63 | CI (`.github/workflows/ci.yml`: typecheck, unit tests and the Worker bundle) on |
| 64 | 64 | Diffinery's hosted runners. When it passes, `.github/workflows/deploy.yml` |
| 65 | 65 | deploys that commit, followed by the live test (`.github/workflows/live-test.yml`); |
| 66 | 66 | the end-to-end suite (`.github/workflows/e2e.yml`) runs alongside. Deploys |
| 67 | 67 | reuse the runner image from Cloudflare's registry and rebuild it only when |
| 68 | -`containers/runner` changed, or weekly for base image updates (`scripts/runner-image.sh`). GitHub stays the upstream for | |
| 69 | -now: `.github/workflows/sync-to-diffinery.yml` copies every branch and tag, and | |
| 70 | -the secrets and variables below, to Diffinery on each push, then waits for the | |
| 71 | -Actions runs there and fails if any of them fail. Running Deploy by hand on | |
| 72 | -GitHub still deploys, as a fallback. | |
| 68 | +`containers/runner` changed, or weekly for base image updates (`scripts/runner-image.sh`). Diffinery is this repository's only home: GitHub's | |
| 69 | +copy (github.com/codician-team/diffinery) stopped at the cut-off on 14 October 2026 and | |
| 70 | +is kept as a record. Changes land through pull requests on Diffinery; agents land | |
| 71 | +theirs with auto-merge once the required checks pass. A checkout cloned from GitHub | |
| 72 | +switches over with `scripts/use-diffinery.sh` (it needs `DIFFINERY_TOKEN`). | |
| 73 | 73 | |
| 74 | 74 | The workflow needs two repository secrets: |
| 75 | 75 |
modifiedapps/diffinery/docs/self-hosting/configuration.md+2−2View file
| @@ -311,7 +311,7 @@ | ||
| 311 | 311 | |
| 312 | 312 | Deploy reads `DIFFINERY_DOMAIN`, `DIFFINERY_ZONE` and `MAIL_DOMAIN` from the repository's variables and passes them to bootstrap, so you point it at your own hostname without editing the workflow (see [Deploy your own Diffinery](/docs/self-hosting/deploy#step-1-point-the-code-at-your-domain)). Deploy runs on pushes to `main` on any Diffinery instance, and when started by hand on GitHub. |
| 313 | 313 | |
| 314 | -The Deploy job and the Sync job run in an environment named `production`. The Live test and Sync workflows target `https://diffinery.com` and its `codician-team/diffinery` repository; adapt or delete them for your own instance. | |
| 314 | +The Deploy job and the Sync job run in an environment named `production`. The Live test and Sync workflows target `https://diffinery.com` and its `codician/diffinery` repository; adapt or delete them for your own instance. | |
| 315 | 315 | |
| 316 | 316 | The **Import campaign** workflow is a manual test of the importer. Started on GitHub (**Run workflow**), it starts the same workflow on Diffinery and prints its report. On Diffinery it imports a list of public GitHub repositories (the `repos` input) as private repositories named `<owner>/campaign-<github owner>-<github repo>`, replacing copies from earlier campaigns. It can then run their push workflows (`run_workflows`, off by default, because that is third-party code) and writes a report of what came across and what ran. |
| 317 | 317 | |
| @@ -322,7 +322,7 @@ | ||
| 322 | 322 | |
| 323 | 323 | It needs `DIFFINERY_LIVE_TOKEN` and, optionally, `IMPORT_GITHUB_TOKEN`. |
| 324 | 324 | |
| 325 | -Sync to Diffinery copies the four variables above to the repository on Diffinery (only those that are set), together with the secrets `CLOUDFLARE_API_TOKEN`, `CLOUDFLARE_ACCOUNT_ID` and `DIFFINERY_LIVE_TOKEN`, so the copy deploys to the same place. Each push copies only the branch or tag it pushed, and runs are queued per ref, so a push to another branch never replaces a waiting sync of `main`. A run started by hand copies every branch and tag; it queues together with `main`, and moves each ref only if it still points where it did when the run read it, so it never puts back an older commit that another run copied in the meantime. Branch deletions aren't copied. Only a sync of `main` checks that `main` on Diffinery matches and waits for its Actions runs. | |
| 325 | +Sync to Diffinery runs only when started by hand on GitHub (`workflow_dispatch`). Since the cut-off, the repository's home is on Diffinery, and pushes to GitHub are no longer copied. A run copies the four variables above to the repository on Diffinery (only those that are set), together with the secrets `CLOUDFLARE_API_TOKEN`, `CLOUDFLARE_ACCOUNT_ID` and `DIFFINERY_LIVE_TOKEN`, so the copy deploys to the same place. It then copies every branch and tag, moving each ref only if it still points where it did when the run read it, so it never puts back an older commit that changed on Diffinery in the meantime. Branch deletions aren't copied. A run on `main` checks that `main` on Diffinery matches and waits for its Actions runs. Tick **Only copy the secrets and variables** to skip the branches, tags and the wait, for a repository on Diffinery that already has the code. | |
| 326 | 326 | |
| 327 | 327 | `scripts/diffinery-wait-runs.sh`, which the sync workflow uses to wait for Actions runs on a commit, reads `DIFFINERY` (the instance origin) and `TOKEN` (a Diffinery token) from the environment: |
| 328 | 328 |
modifiedapps/diffinery/docs/self-hosting/deploy.md+1−1View file
| @@ -66,7 +66,7 @@ | ||
| 66 | 66 | |
| 67 | 67 | `DIFFINERY_DOMAIN` is a bare hostname, without `https://` or a path. Diffinery is always served over HTTPS at the root of that hostname. |
| 68 | 68 | |
| 69 | -**Other workflows.** `.github/workflows/live-test.yml` and `.github/workflows/sync-to-diffinery.yml` test and mirror the public `diffinery.com` instance. Delete them, or change their `DIFFINERY` host and organization names before you enable them. The sync workflow runs only on GitHub: it copies each pushed branch or tag to the instance, copies the deploy secrets and the `DIFFINERY_DOMAIN`, `DIFFINERY_ZONE`, `MAIL_DOMAIN` and `ACCESS_TEAM_DOMAIN` variables, and for `main` waits for the Actions runs there, so the copy on Diffinery deploys itself (see [Configuration](/docs/self-hosting/configuration#repository-secrets-and-variables-for-the-workflows)). `ci.yml` (typecheck, tests and the end-to-end test) works as is. `dind-probe.yml` is a maintenance probe started by hand; you can delete it. `d1-replication.yml` is optional; see [Architecture](/docs/self-hosting/architecture#d1-and-read-replication). | |
| 69 | +**Other workflows.** `.github/workflows/live-test.yml` and `.github/workflows/sync-to-diffinery.yml` test and mirror the public `diffinery.com` instance. Delete them, or change their `DIFFINERY` host and organization names before you enable them. The sync workflow runs only on GitHub, and only when started by hand: it copies every branch and tag to the instance, copies the deploy secrets and the `DIFFINERY_DOMAIN`, `DIFFINERY_ZONE`, `MAIL_DOMAIN` and `ACCESS_TEAM_DOMAIN` variables, and for `main` waits for the Actions runs there, so the copy on Diffinery deploys itself (see [Configuration](/docs/self-hosting/configuration#repository-secrets-and-variables-for-the-workflows)). `ci.yml` (typecheck, tests and the end-to-end test) works as is. `dind-probe.yml` is a maintenance probe started by hand; you can delete it. `d1-replication.yml` is optional; see [Architecture](/docs/self-hosting/architecture#d1-and-read-replication). | |
| 70 | 70 | |
| 71 | 71 | > **Note:** The scripts use fixed resource names: a D1 database `diffinery`, an R2 bucket `diffinery-data`, queues `diffinery-events`, `diffinery-events-dlq`, `diffinery-mail`, `diffinery-mail-dlq` and `diffinery-mail-events`, and a Worker `diffinery`. One Cloudflare account holds one instance unless you rename them in `scripts/bootstrap.sh` and `wrangler.jsonc`. |
| 72 | 72 |