You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Fold the manual-deployment runbook into CONTRIBUTOR.md ("Deploying a
release") and drop scripts/README.md so the contributor guide is the
single home for it. Repoint the references in deploy.sh and release.yml.
Copy file name to clipboardExpand all lines: CONTRIBUTOR.md
+85Lines changed: 85 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,3 +56,88 @@ your GitHub account.
56
56
> Never place an SSH key registered as an **Authentication key** in the container.
57
57
> An authentication key grants full account-wide git access and would bypass the
58
58
> minimal permissions of your fine-grained PAT. Use a **signing-only** key here.
59
+
60
+
## Deploying a release
61
+
62
+
`scripts/deploy.sh` builds and publishes the komet-node release artifacts. It is
63
+
the single source of truth for the deployment steps: the `Release` workflow
64
+
(`.github/workflows/release.yml`) invokes its subcommands, and you run the same
65
+
subcommands by hand when CI is unavailable.
66
+
67
+
### What it does
68
+
69
+
The script has three subcommands:
70
+
71
+
| Subcommand | Action |
72
+
| ----------- | ------ |
73
+
|`nix-cache`| Builds `.#komet-node`, pushes the full build closure to the `k-framework` Cachix cache, publishes the kup-installable binary to the `k-framework-binary` cache, then verifies the push and pin. Both caches are public; `binary` is a historical name, not an access level. |
74
+
|`docker`| Builds the runtime image from `Dockerfile`, runs `komet-node --help` in it as a smoke test, then pushes it to Docker Hub. |
75
+
|`all`| Runs `nix-cache` then `docker`. |
76
+
77
+
The image tag is `runtimeverificationinc/komet-node:ubuntu-jammy-<version>`,
78
+
where `<version>` comes from `package/version`.
79
+
80
+
### Prerequisites
81
+
82
+
Both subcommands run from a checkout of the revision you are releasing, with the
83
+
following tools on `PATH`:
84
+
85
+
-`nix-cache` needs `nix` and `cachix`. It fetches `kup` from
86
+
`github:runtimeverification/kup` itself, so you do not install kup separately.
87
+
-`docker` needs `docker`.
88
+
89
+
Each subcommand checks its tools up front and exits with a clear message if one
90
+
is missing, before starting the build.
91
+
92
+
The devcontainer provides all of these: `nix` and `cachix` are installed into the
93
+
Nix profile, and the docker-in-docker feature supplies `docker`. If you added
94
+
these to an existing container, rebuild it ("Dev Containers: Rebuild Container")
95
+
so the new tools are present.
96
+
97
+
Provide the secrets as environment variables. Everything else has a default (see
98
+
the `Shared configuration` block in `deploy.sh`), so a normal checkout needs no
0 commit comments