@rizom/ops 0.2.0-alpha.276 → 0.2.0-alpha.278
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/brains-ops.js +139 -138
- package/dist/directory-sync-stress-system.d.ts +21 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +231 -230
- package/dist/run-command.d.ts +2 -1
- package/package.json +1 -1
- package/templates/rover-pilot/.github/workflows/directory-sync-stress.yml +17 -1
- package/templates/rover-pilot/docs/operator-playbook.md +2 -0
package/dist/run-command.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ import { type LookupHost } from "./observed-status";
|
|
|
5
5
|
import { type RunCommand as OpsRunCommand } from "./run-subprocess";
|
|
6
6
|
import { type SshKeygen } from "./ssh-key-bootstrap";
|
|
7
7
|
import type { UserRunner } from "./user-runner";
|
|
8
|
-
import type { cleanupDirectorySyncStress, runDeployedDirectorySyncStress } from "./directory-sync-stress-system";
|
|
8
|
+
import type { cleanupDirectorySyncStress, runDeployedDirectorySyncStress, verifyDirectorySyncStressAccess } from "./directory-sync-stress-system";
|
|
9
9
|
export interface CommandResult {
|
|
10
10
|
success: boolean;
|
|
11
11
|
message?: string;
|
|
@@ -19,6 +19,7 @@ export interface CommandDependencies extends LoadPilotRegistryOptions {
|
|
|
19
19
|
bootstrapRunCommand?: OpsRunCommand | undefined;
|
|
20
20
|
sshKeygen?: SshKeygen | undefined;
|
|
21
21
|
directorySyncStressRunner?: typeof runDeployedDirectorySyncStress | undefined;
|
|
22
|
+
directorySyncStressAccessRunner?: typeof verifyDirectorySyncStressAccess | undefined;
|
|
22
23
|
directorySyncStressCleanupRunner?: typeof cleanupDirectorySyncStress | undefined;
|
|
23
24
|
}
|
|
24
25
|
export declare const globalFlags: FlagDefinitions;
|
package/package.json
CHANGED
|
@@ -23,6 +23,11 @@ on:
|
|
|
23
23
|
description: Type stress:<handle> to confirm reversible content writes
|
|
24
24
|
required: true
|
|
25
25
|
type: string
|
|
26
|
+
verify_only:
|
|
27
|
+
description: Verify the content credential path without remote writes or a workload
|
|
28
|
+
required: false
|
|
29
|
+
type: boolean
|
|
30
|
+
default: false
|
|
26
31
|
|
|
27
32
|
permissions:
|
|
28
33
|
contents: read
|
|
@@ -48,7 +53,18 @@ jobs:
|
|
|
48
53
|
env:
|
|
49
54
|
BWS_ACCESS_TOKEN: ${{ secrets.BWS_ACCESS_TOKEN }}
|
|
50
55
|
|
|
56
|
+
- name: Verify smoke directory-sync credential path
|
|
57
|
+
if: ${{ github.event_name != 'schedule' && inputs.verify_only }}
|
|
58
|
+
env:
|
|
59
|
+
HANDLE_INPUT: ${{ inputs.handle }}
|
|
60
|
+
CONFIRM_INPUT: ${{ inputs.confirm }}
|
|
61
|
+
run: |
|
|
62
|
+
bunx brains-ops stress:directory-sync:verify-access "$GITHUB_WORKSPACE" "$HANDLE_INPUT" \
|
|
63
|
+
--confirm "$CONFIRM_INPUT" \
|
|
64
|
+
--artifacts-dir "$RUNNER_TEMP/directory-sync-stress"
|
|
65
|
+
|
|
51
66
|
- name: Run smoke directory-sync stress profile
|
|
67
|
+
if: ${{ github.event_name == 'schedule' || !inputs.verify_only }}
|
|
52
68
|
env:
|
|
53
69
|
HANDLE_INPUT: ${{ github.event_name == 'schedule' && 'smoke' || inputs.handle }}
|
|
54
70
|
PROFILE_INPUT: ${{ github.event_name == 'schedule' && 'regression' || inputs.profile }}
|
|
@@ -69,7 +85,7 @@ jobs:
|
|
|
69
85
|
|
|
70
86
|
cleanup:
|
|
71
87
|
needs: stress
|
|
72
|
-
if: always()
|
|
88
|
+
if: ${{ always() && (github.event_name == 'schedule' || !inputs.verify_only) }}
|
|
73
89
|
runs-on: ubuntu-latest
|
|
74
90
|
timeout-minutes: 20
|
|
75
91
|
steps:
|
|
@@ -76,6 +76,8 @@ embeddingEnabled: false
|
|
|
76
76
|
topicExtractionEnabled: false
|
|
77
77
|
```
|
|
78
78
|
|
|
79
|
+
Before authorizing a workload, dispatch the workflow once with `verify_only: true`. That mode loads the same Bitwarden/Varlock content credential, clones the smoke content repository, and runs `git push --dry-run` against a temporary stress ref. It creates no ref, performs no content write, does not contact the deployed runtime, and skips cleanup because no probes were created.
|
|
80
|
+
|
|
79
81
|
Profiles are deterministic and reversible:
|
|
80
82
|
|
|
81
83
|
- `regression`: 20 probes;
|