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
Copy file name to clipboardExpand all lines: docs/contributing/release-process.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -40,15 +40,15 @@ This makes similar checks as the github release. It also includes properly order
40
40
41
41
### One-time CI signing setup
42
42
43
-
Before the first release, GitHub Actions needs a device key and identity bundle for artifact signing:
43
+
Before the first release, GitHub Actions needs a device key and identity token for artifact signing:
44
44
45
45
```bash
46
-
just ci-setup
46
+
auths cisetup
47
47
```
48
48
49
-
This creates a limited-capability CI device key, exports it as an encrypted keychain, and sets three GitHub secrets: `AUTHS_CI_PASSPHRASE`, `AUTHS_CI_KEYCHAIN`, and `AUTHS_CI_IDENTITY_BUNDLE`. Artifact signing is skipped gracefully if these secrets are missing.
49
+
This creates a limited-capability CI device key and sets a single `AUTHS_CI_TOKEN` secret on GitHub containing everything CI needs. Artifact signing is skipped gracefully if the secret is missing.
50
50
51
-
Re-run `ci-setup` only if the CI device key is revoked or the identity repo changes significantly.
51
+
To refresh the token without regenerating the device key, run `auths ci rotate`.
Copy file name to clipboardExpand all lines: docs/guides/platforms/ci-cd.md
+26-45Lines changed: 26 additions & 45 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,38 +12,38 @@ CI signing in Auths works through device delegation:
12
12
4. In CI, the runner restores the identity bundle and signs artifacts using the CI device key.
13
13
5. You can **revoke** the CI device at any time without affecting your root identity.
14
14
15
-
## One-time setup with `cargo xt ci-setup`
15
+
## One-time setup with `auths ci setup`
16
16
17
-
The `ci-setup` xtask automates the entire provisioning flow. Run it from the project root:
17
+
Run this from any repo with a git remote:
18
18
19
19
```bash
20
-
cargo xt ci-setup
20
+
auths ci setup
21
21
```
22
22
23
23
This command will:
24
24
25
-
1.**Verify your identity exists**by running `auths status`.
26
-
2.**Read your identity DID**from `auths id show` and your key alias from `auths key list`.
27
-
3.**Generate a CI device key**(Ed25519, 32-byte seed) and import it into your platform keychain under the alias `ci-release-device`.
28
-
4.**Prompt for a passphrase**that will protect the CI device key. This passphrase will be stored as a GitHub Secret.
29
-
5.**Create an encrypted file keychain** by copying the key to a file-backed keychain using `auths key copy-backend --alias ci-release-device --dst-backend file`.
30
-
6.**Derive the device DID** using `auths key export --alias ci-release-device --format pub` and `auths debug util pubkey-to-did`.
31
-
7.**Link the CI device** to your identity with `auths device link --capabilities sign_release --note "GitHub Actions release signer"`.
32
-
8.**Package your `~/.auths` repository** as a base64-encoded tarball (excluding `.sock` files).
33
-
9.**Set three GitHub Secrets** via the `gh` CLI:
34
-
-`AUTHS_CI_PASSPHRASE` -- The passphrase for the CI device key.
35
-
-`AUTHS_CI_KEYCHAIN` -- The encrypted file keychain (base64).
36
-
-`AUTHS_CI_IDENTITY_BUNDLE` -- The `~/.auths` repository snapshot (base64 tarball).
37
-
38
-
If the `gh` CLI is not authenticated, the command prints the secret values for you to add manually via **Repository > Settings > Secrets > Actions > New secret**.
25
+
1.**Verify your identity exists**and read your identity DID and key alias.
26
+
2.**Generate a CI device key**(Ed25519) and link it to your identity with `sign_release` capability.
27
+
3.**Package everything**into a single `AUTHS_CI_TOKEN` JSON secret containing the passphrase, encrypted keychain, identity repo snapshot, and verification bundle.
28
+
4.**Set the secret**on your forge automatically via the `gh` CLI (GitHub) or print the token for manual setup (other forges).
29
+
30
+
If the `gh` CLI is not authenticated, the command prints the token value for you to add manually via **Repository > Settings > Secrets > Actions > New secret**.
31
+
32
+
### Rotating the token
33
+
34
+
To refresh the token (new TTL, updated identity repo) without regenerating the device key:
35
+
36
+
```bash
37
+
auths ci rotate
38
+
```
39
39
40
40
### Re-running setup
41
41
42
-
If you already have a `ci-release-device` key, `cargo xt ci-setup` detects it and reuses the existing key while regenerating the file keychain and secrets.
42
+
If you already have a `ci-release-device` key, `auths ci setup` detects it and reuses the existing key while regenerating the token.
43
43
44
44
## Signing artifacts in GitHub Actions
45
45
46
-
Once the secrets are set, add a signing step to your release workflow:
46
+
Once `AUTHS_CI_TOKEN` is set, add a signing step to your release workflow:
The device DID and identity key alias are printed by `cargo xt ci-setup` when the device is created. After revocation, the CI device key can no longer produce valid attestations, even if the secrets remain in GitHub.
211
+
The device DID and identity key alias are printed by `auths ci setup` when the device is created. After revocation, the CI device key can no longer produce valid attestations, even if the secrets remain in GitHub.
0 commit comments