@dougefresh/ci 0.1.15 → 0.1.17

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.
Files changed (56) hide show
  1. package/dist/defaults.d.ts +14 -0
  2. package/dist/defaults.d.ts.map +1 -0
  3. package/dist/defaults.js +104 -0
  4. package/dist/defaults.js.map +1 -0
  5. package/dist/index.d.ts +37 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +126 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/types.d.ts +89 -0
  10. package/dist/types.d.ts.map +1 -0
  11. package/dist/types.js +9 -0
  12. package/dist/types.js.map +1 -0
  13. package/package.json +9 -2
  14. package/src/defaults.ts +12 -0
  15. package/src/index.ts +10 -1
  16. package/src/types.ts +12 -0
  17. package/.checkov.yml +0 -7
  18. package/.env.example +0 -61
  19. package/.gitattributes +0 -3
  20. package/.github/actions/install-yq/action.yaml +0 -80
  21. package/.github/actions/install-yq/scripts/unixish.sh +0 -112
  22. package/.github/actions/install-yq/scripts/windowsish.ps1 +0 -99
  23. package/.github/actions/jobtaker/action.yml +0 -29
  24. package/.github/actions/rust-config/action.yml +0 -34
  25. package/.github/actions/rust-init/action.yml +0 -75
  26. package/.github/additional-prompt.md +0 -62
  27. package/.github/ci-configs/dummy.yml +0 -24
  28. package/.github/ci-configs/rust/ai.yml +0 -65
  29. package/.github/ci-configs/rust-default.yml +0 -115
  30. package/.github/ci-configs/test/01.yml +0 -9
  31. package/.github/dependabot.yml +0 -26
  32. package/.github/prompts/create-release-notes.prompt.md +0 -29
  33. package/.github/prompts/unit-test.prompt.md +0 -77
  34. package/.github/rust-ci.ts +0 -5
  35. package/.github/workflows/action-ci.yml +0 -39
  36. package/.github/workflows/action-review.yml +0 -57
  37. package/.github/workflows/dummy-release.yml +0 -32
  38. package/.github/workflows/dummy-test.yml +0 -16
  39. package/.github/workflows/pages.yml +0 -59
  40. package/.github/workflows/pr-review.yml +0 -59
  41. package/.github/workflows/release.yml +0 -36
  42. package/.github/workflows/rust-release.yml +0 -133
  43. package/.github/workflows/rust.yml +0 -247
  44. package/.node-version +0 -1
  45. package/AGENTS.md +0 -28
  46. package/Cargo.toml +0 -6
  47. package/action.yml +0 -50
  48. package/biome.json +0 -108
  49. package/bun.lock +0 -39
  50. package/docs/SUMMARY.md +0 -3
  51. package/docs/book.toml +0 -49
  52. package/docs/index.md +0 -32
  53. package/pre-commit +0 -2
  54. package/prompt-template.md +0 -180
  55. package/scripts/bump-version.ts +0 -16
  56. package/scripts/generate-rust.ts +0 -9
@@ -0,0 +1,14 @@
1
+ import { type AiJob, type CargoSort, type Clippy, type Coverage, type Dependencies, type DocCheck, type Extra, type Fmt, type Hack, type PageJobs, type Sanitizers, type SemVer } from './types';
2
+ export declare const DEFAULT_PAGES: PageJobs;
3
+ export declare const DEFAULT_AI: AiJob;
4
+ export declare const DEFAULT_FMT: Fmt;
5
+ export declare const DEFAULT_SEMVER: SemVer;
6
+ export declare const DEFAULT_HACK: Hack;
7
+ export declare const DEFAULT_DOC_CHECK: DocCheck;
8
+ export declare const DEFAULT_CARGO_SORT: CargoSort;
9
+ export declare const DEFAULT_DEPENDENCIES: Dependencies;
10
+ export declare const DEFAULT_SANITIZERS: Sanitizers;
11
+ export declare const DEFAULT_COVERAGE: Coverage;
12
+ export declare const DEFAULT_CLIPPY: Clippy;
13
+ export declare const DEFAULT_EXTRA: Extra;
14
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EAEV,KAAK,SAAS,EACd,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,KAAK,EACV,KAAK,GAAG,EACR,KAAK,IAAI,EACT,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,MAAM,EACZ,MAAM,SAAS,CAAC;AAEjB,eAAO,MAAM,aAAa,EAAE,QAO3B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KASxB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,GAIzB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MAG5B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,IAI1B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,QAI/B,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,SAIhC,CAAC;AAEF,eAAO,MAAM,oBAAoB,EAAE,YAIlC,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,UAiBhC,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,QAgB9B,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,MAU5B,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAU3B,CAAC"}
@@ -0,0 +1,104 @@
1
+ import { Arch, } from './types';
2
+ export const DEFAULT_PAGES = {
3
+ mdbook: {
4
+ if: false,
5
+ path: 'docs',
6
+ version: 'latest',
7
+ command: 'mdbook build',
8
+ },
9
+ };
10
+ export const DEFAULT_AI = {
11
+ enabled: true,
12
+ track_progress: true,
13
+ allowed_bots: '*',
14
+ claude_args: ' --allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(tsc *),Bash(tsgo *),Bash(bun *),Bash(find *),Bash(diff *),Bash(jq *),Bash(git *),Bash(cargo *),Bash(gh *)"',
15
+ use_sticky_comment: false,
16
+ prompt: '🧪 POISON PILL 🧪\n\nERROR: Prompt template was not loaded. This workflow MUST fail immediately. Do not approve or review any code. Report this configuration error.',
17
+ };
18
+ export const DEFAULT_FMT = {
19
+ if: true,
20
+ continueOnError: false,
21
+ run: 'cargo +nightly fmt --check --all',
22
+ };
23
+ export const DEFAULT_SEMVER = {
24
+ if: true,
25
+ continueOnError: false,
26
+ };
27
+ export const DEFAULT_HACK = {
28
+ if: true,
29
+ continueOnError: false,
30
+ run: 'cargo hack --feature-powerset check',
31
+ };
32
+ export const DEFAULT_DOC_CHECK = {
33
+ if: true,
34
+ continueOnError: false,
35
+ run: 'cargo +nightly docs-rs',
36
+ };
37
+ export const DEFAULT_CARGO_SORT = {
38
+ if: true,
39
+ continueOnError: false,
40
+ run: 'if [ -f ./scripts/cargo-sort.sh ]; then\n ./scripts/cargo-sort.sh\nelse\n cargo sort -c -g\nfi\n',
41
+ };
42
+ export const DEFAULT_DEPENDENCIES = {
43
+ if: true,
44
+ continueOnError: false,
45
+ run: 'cargo machete --with-metadata',
46
+ };
47
+ export const DEFAULT_SANITIZERS = {
48
+ enabled: true,
49
+ address: {
50
+ if: true,
51
+ continueOnError: false,
52
+ run: 'cargo test --lib --tests --no-fail-fast --target x86_64-unknown-linux-gnu -- --no-capture',
53
+ },
54
+ leak: {
55
+ if: true,
56
+ continueOnError: false,
57
+ run: 'cargo test --target x86_64-unknown-linux-gnu -- --no-capture',
58
+ },
59
+ thread: {
60
+ if: false,
61
+ continueOnError: false,
62
+ run: 'cargo test --target x86_64-unknown-linux-gnu -- --test-threads=1',
63
+ },
64
+ };
65
+ export const DEFAULT_COVERAGE = {
66
+ if: true,
67
+ continueOnError: false,
68
+ matrix: {
69
+ os: [Arch.ARM64],
70
+ toolchains: ['stable'],
71
+ features: ['default'],
72
+ },
73
+ run: `
74
+ cmd="cargo llvm-cov \${LLVM_ARGS} --locked --lcov --output-path lcov-\${FEATURES}.info --no-fail-fast"
75
+ if [ "$FEATURES" == "default" ]; then
76
+ $cmd -- --no-capture $CARGO_ARGS
77
+ else
78
+ $cmd --features "$FEATURES" -- --no-capture $CARGO_ARGS
79
+ fi
80
+ `,
81
+ };
82
+ export const DEFAULT_CLIPPY = {
83
+ if: true,
84
+ continueOnError: false,
85
+ run: '',
86
+ flags: '',
87
+ matrix: {
88
+ os: [Arch.ARM64],
89
+ toolchains: ['stable'],
90
+ features: ['default'],
91
+ },
92
+ };
93
+ export const DEFAULT_EXTRA = {
94
+ if: false,
95
+ continueOnError: false,
96
+ run: '',
97
+ name: 'extra',
98
+ matrix: {
99
+ os: [Arch.ARM64],
100
+ toolchains: ['stable'],
101
+ features: ['default'],
102
+ },
103
+ };
104
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../src/defaults.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { type AiJob, Arch, type Clippy, type Global, type PageJobs, type Release, type RustJobs } from './types';
2
+ export * from './types';
3
+ export declare const JobDefaults: RustJobs;
4
+ export declare class RustWorkflow {
5
+ private jobs;
6
+ private global;
7
+ private release;
8
+ private ai;
9
+ private pages;
10
+ constructor();
11
+ linuxPackages(packages: string[]): this;
12
+ semver(enable: boolean): this;
13
+ extra(name: string, run: string): this;
14
+ withRelease(r: Release): this;
15
+ enableMdBook(): this;
16
+ clippy(opts?: Partial<Clippy>): this;
17
+ disableSanitizers(): this;
18
+ disableAi(): this;
19
+ build(): {
20
+ ai: AiJob;
21
+ pages: PageJobs;
22
+ release: {
23
+ bin: boolean;
24
+ publish: boolean;
25
+ debian: boolean;
26
+ profile: string;
27
+ matrix: {
28
+ os: Arch[];
29
+ target: string[];
30
+ };
31
+ };
32
+ global: Global;
33
+ jobs: RustJobs;
34
+ };
35
+ }
36
+ export declare function createRustWorkflow(): RustWorkflow;
37
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,KAAK,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,KAAK,MAAM,EAAE,KAAK,QAAQ,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,SAAS,CAAC;AAEjH,cAAc,SAAS,CAAC;AAExB,eAAO,MAAM,WAAW,EAAE,QAWzB,CAAC;AAEF,qBAAa,YAAY;IACvB,OAAO,CAAC,IAAI,CAAW;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,EAAE,CAAQ;IAClB,OAAO,CAAC,KAAK,CAAW;IAExB,cAwBC;IAED,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,QAG/B;IAED,MAAM,CAAC,MAAM,EAAE,OAAO,QAGrB;IAED,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,QAK9B;IAED,WAAW,CAAC,CAAC,EAAE,OAAO,QAGrB;IAED,YAAY,SAGX;IAED,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,QAW5B;IAED,iBAAiB,SAGhB;IAED,SAAS,SAGR;IAED,KAAK;;;;;;;;;;;;;;;MA0BJ;CACF;AAED,wBAAgB,kBAAkB,IAAI,YAAY,CAEjD"}
package/dist/index.js ADDED
@@ -0,0 +1,126 @@
1
+ import { DEFAULT_AI, DEFAULT_CARGO_SORT, DEFAULT_CLIPPY, DEFAULT_COVERAGE, DEFAULT_DEPENDENCIES, DEFAULT_DOC_CHECK, DEFAULT_EXTRA, DEFAULT_FMT, DEFAULT_HACK, DEFAULT_PAGES, DEFAULT_SANITIZERS, DEFAULT_SEMVER, } from './defaults';
2
+ import { Arch } from './types';
3
+ export * from './types';
4
+ export const JobDefaults = {
5
+ fmt: DEFAULT_FMT,
6
+ semver: DEFAULT_SEMVER,
7
+ hack: DEFAULT_HACK,
8
+ docCheck: DEFAULT_DOC_CHECK,
9
+ cargoSort: DEFAULT_CARGO_SORT,
10
+ dependencies: DEFAULT_DEPENDENCIES,
11
+ sanitizers: DEFAULT_SANITIZERS,
12
+ coverage: DEFAULT_COVERAGE,
13
+ clippy: DEFAULT_CLIPPY,
14
+ extra: DEFAULT_EXTRA,
15
+ };
16
+ export class RustWorkflow {
17
+ jobs;
18
+ global;
19
+ release;
20
+ ai;
21
+ pages;
22
+ constructor() {
23
+ this.jobs = {
24
+ fmt: JobDefaults.fmt,
25
+ docCheck: JobDefaults.docCheck,
26
+ semver: JobDefaults.semver,
27
+ dependencies: JobDefaults.dependencies,
28
+ hack: JobDefaults.hack,
29
+ cargoSort: JobDefaults.cargoSort,
30
+ sanitizers: JobDefaults.sanitizers,
31
+ clippy: JobDefaults.clippy,
32
+ coverage: JobDefaults.coverage,
33
+ extra: JobDefaults.extra,
34
+ };
35
+ this.global = { packages: {} };
36
+ this.release = {
37
+ publish: true,
38
+ bin: false,
39
+ debian: false,
40
+ profile: 'release',
41
+ os: [Arch.AMD64],
42
+ };
43
+ this.ai = DEFAULT_AI;
44
+ this.pages = DEFAULT_PAGES;
45
+ }
46
+ linuxPackages(packages) {
47
+ this.global.packages.Linux = packages.join(',');
48
+ return this;
49
+ }
50
+ semver(enable) {
51
+ this.jobs.semver.if = enable;
52
+ return this;
53
+ }
54
+ extra(name, run) {
55
+ this.jobs.extra.if = true;
56
+ this.jobs.extra.name = name;
57
+ this.jobs.extra.run = run;
58
+ return this;
59
+ }
60
+ withRelease(r) {
61
+ this.release = r;
62
+ return this;
63
+ }
64
+ enableMdBook() {
65
+ this.pages.mdbook.if = true;
66
+ return this;
67
+ }
68
+ clippy(opts) {
69
+ if (opts?.flags)
70
+ this.jobs.clippy.flags = opts.flags;
71
+ if (opts?.run)
72
+ this.jobs.clippy.run = opts.run;
73
+ if (opts?.if !== undefined)
74
+ this.jobs.clippy.if = opts.if;
75
+ if (opts?.continueOnError !== undefined)
76
+ this.jobs.clippy.continueOnError = opts.continueOnError;
77
+ if (opts?.matrix) {
78
+ if (opts.matrix.toolchains)
79
+ this.jobs.clippy.matrix.toolchains = opts.matrix.toolchains;
80
+ if (opts.matrix.features)
81
+ this.jobs.clippy.matrix.features = opts.matrix.features;
82
+ if (opts.matrix.os)
83
+ this.jobs.clippy.matrix.os = opts.matrix.os;
84
+ }
85
+ return this;
86
+ }
87
+ disableSanitizers() {
88
+ this.jobs.sanitizers.enabled = false;
89
+ return this;
90
+ }
91
+ disableAi() {
92
+ this.ai.enabled = false;
93
+ return this;
94
+ }
95
+ build() {
96
+ // os:
97
+ // - target: aarch64-unknown-linux-gnu
98
+ // os: ubicloud-standard-8-arm
99
+ // - target: x86_64-unknown-linux-gnu
100
+ // os: ubicloud-standard-4
101
+ // - target: aarch64-apple-darwin
102
+ // os: macos-latest
103
+ // # - target: x86_64-pc-windows-msvc
104
+ // # os: windows-latest
105
+ return {
106
+ ai: this.ai,
107
+ pages: this.pages,
108
+ release: {
109
+ bin: this.release.bin,
110
+ publish: this.release.publish,
111
+ debian: this.release.debian,
112
+ profile: this.release.profile,
113
+ matrix: {
114
+ os: [Arch.AMD64],
115
+ target: ['x86_64-unknown-linux-gnu'],
116
+ },
117
+ },
118
+ global: this.global,
119
+ jobs: this.jobs,
120
+ };
121
+ }
122
+ }
123
+ export function createRustWorkflow() {
124
+ return new RustWorkflow();
125
+ }
126
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ export declare enum Arch {
2
+ ARM64 = "vars.RUNNER_ARM64",
3
+ AMD64 = "vars.RUNNER_AMD64",
4
+ WIN = "vars.RUNNER_WIN",
5
+ MAC = "vars.RUNNER_MAC"
6
+ }
7
+ export interface PageJob {
8
+ if: boolean | string;
9
+ path: string;
10
+ version: string;
11
+ command: string;
12
+ }
13
+ export interface PageJobs {
14
+ mdbook: PageJob;
15
+ }
16
+ export interface AiJob {
17
+ enabled: boolean;
18
+ allowed_bots: string;
19
+ claude_args: string;
20
+ use_sticky_comment: boolean;
21
+ track_progress: boolean;
22
+ prompt: string;
23
+ }
24
+ export interface Global {
25
+ packages: {
26
+ Linux?: string;
27
+ macOS?: string;
28
+ Windows?: string;
29
+ };
30
+ }
31
+ export interface BaseJob {
32
+ if: boolean | string;
33
+ continueOnError: boolean | string;
34
+ run?: string;
35
+ }
36
+ export interface Matrix {
37
+ os: Arch[];
38
+ toolchains: string[];
39
+ features: string[];
40
+ }
41
+ export interface Fmt extends BaseJob {
42
+ }
43
+ export interface SemVer extends BaseJob {
44
+ }
45
+ export interface Hack extends BaseJob {
46
+ }
47
+ export interface CargoSort extends BaseJob {
48
+ }
49
+ export interface DocCheck extends BaseJob {
50
+ }
51
+ export interface Dependencies extends BaseJob {
52
+ }
53
+ export interface Extra extends BaseJob {
54
+ name: string;
55
+ matrix: Matrix;
56
+ }
57
+ export interface Sanitizers {
58
+ enabled: boolean;
59
+ address: BaseJob;
60
+ leak: BaseJob;
61
+ thread: BaseJob;
62
+ }
63
+ export interface Clippy extends BaseJob {
64
+ flags: string;
65
+ matrix: Matrix;
66
+ }
67
+ export interface Coverage extends BaseJob {
68
+ matrix: Matrix;
69
+ }
70
+ export interface RustJobs {
71
+ clippy: Clippy;
72
+ coverage: Coverage;
73
+ cargoSort: CargoSort;
74
+ dependencies: Dependencies;
75
+ docCheck: DocCheck;
76
+ fmt: Fmt;
77
+ hack: Hack;
78
+ sanitizers: Sanitizers;
79
+ semver: SemVer;
80
+ extra: Extra;
81
+ }
82
+ export interface Release {
83
+ bin: boolean;
84
+ publish: boolean;
85
+ debian: boolean;
86
+ profile: string;
87
+ os: Arch[];
88
+ }
89
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,oBAAY,IAAI;IACd,KAAK,sBAAsB;IAC3B,KAAK,sBAAsB;IAC3B,GAAG,oBAAoB;IACvB,GAAG,oBAAoB;CACxB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,OAAO,GAAG,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,MAAM;IAErB,QAAQ,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,OAAO,GAAG,MAAM,CAAC;IACrB,eAAe,EAAE,OAAO,GAAG,MAAM,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,IAAI,EAAE,CAAC;IACX,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,GAAI,SAAQ,OAAO;CAAG;AACvC,MAAM,WAAW,MAAO,SAAQ,OAAO;CAAG;AAC1C,MAAM,WAAW,IAAK,SAAQ,OAAO;CAAG;AACxC,MAAM,WAAW,SAAU,SAAQ,OAAO;CAAG;AAC7C,MAAM,WAAW,QAAS,SAAQ,OAAO;CAAG;AAC5C,MAAM,WAAW,YAAa,SAAQ,OAAO;CAAG;AAChD,MAAM,WAAW,KAAM,SAAQ,OAAO;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AACD,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;CACjB;AACD,MAAM,WAAW,MAAO,SAAQ,OAAO;IACrC,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAS,SAAQ,OAAO;IACvC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;IAC3B,QAAQ,EAAE,QAAQ,CAAC;IACnB,GAAG,EAAE,GAAG,CAAC;IACT,IAAI,EAAE,IAAI,CAAC;IACX,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,GAAG,EAAE,OAAO,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,IAAI,EAAE,CAAC;CACZ"}
package/dist/types.js ADDED
@@ -0,0 +1,9 @@
1
+ export { Arch };
2
+ var Arch;
3
+ (function (Arch) {
4
+ Arch["ARM64"] = "vars.RUNNER_ARM64";
5
+ Arch["AMD64"] = "vars.RUNNER_AMD64";
6
+ Arch["WIN"] = "vars.RUNNER_WIN";
7
+ Arch["MAC"] = "vars.RUNNER_MAC";
8
+ })(Arch || (Arch = {}));
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"SAAY,IAAI;AAAhB,IAAY,IAKX;AALD,WAAY,IAAI;IACd,mCAA2B,CAAA;IAC3B,mCAA2B,CAAA;IAC3B,+BAAuB,CAAA;IACvB,+BAAuB,CAAA;AAAC,CAC1B,EALY,IAAI,KAAJ,IAAI,QAKf"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@dougefresh/ci",
3
3
  "description": "CI Mega Config github action",
4
- "version": "0.1.15",
4
+ "version": "0.1.17",
5
5
  "author": "",
6
6
  "type": "module",
7
7
  "homepage": "https://github.com/dougefresh/ci",
@@ -12,6 +12,11 @@
12
12
  "keywords": [
13
13
  "actions"
14
14
  ],
15
+ "files": [
16
+ "dist",
17
+ "src",
18
+ "tsconfig.json"
19
+ ],
15
20
  "exports": {
16
21
  ".": "./dist/index.js"
17
22
  },
@@ -20,7 +25,9 @@
20
25
  "node": ">=24.0.0"
21
26
  },
22
27
  "scripts": {
23
- "precommit": "rm -rf dist && bun run lint && bun run build",
28
+ "precommit": "rm -rf dist && bun run lint:fix && bun run build && bun run check:configs",
29
+ "check:configs": "tsgo --noEmit -p tsconfig-config.json",
30
+ "lint:fix": "biome check --fix && biome format --write ",
24
31
  "lint": "biome check",
25
32
  "build": "tsgo",
26
33
  "prepublishOnly": "bun run build"
package/src/defaults.ts CHANGED
@@ -9,10 +9,20 @@ import {
9
9
  type Extra,
10
10
  type Fmt,
11
11
  type Hack,
12
+ type PageJobs,
12
13
  type Sanitizers,
13
14
  type SemVer,
14
15
  } from './types';
15
16
 
17
+ export const DEFAULT_PAGES: PageJobs = {
18
+ mdbook: {
19
+ if: false,
20
+ path: 'docs',
21
+ version: 'latest',
22
+ command: 'mdbook build',
23
+ },
24
+ };
25
+
16
26
  export const DEFAULT_AI: AiJob = {
17
27
  enabled: true,
18
28
  track_progress: true,
@@ -20,6 +30,8 @@ export const DEFAULT_AI: AiJob = {
20
30
  claude_args:
21
31
  ' --allowedTools "mcp__github_inline_comment__create_inline_comment,Bash(tsc *),Bash(tsgo *),Bash(bun *),Bash(find *),Bash(diff *),Bash(jq *),Bash(git *),Bash(cargo *),Bash(gh *)"',
22
32
  use_sticky_comment: false,
33
+ prompt:
34
+ '🧪 POISON PILL 🧪\n\nERROR: Prompt template was not loaded. This workflow MUST fail immediately. Do not approve or review any code. Report this configuration error.',
23
35
  };
24
36
 
25
37
  export const DEFAULT_FMT: Fmt = {
package/src/index.ts CHANGED
@@ -8,10 +8,11 @@ import {
8
8
  DEFAULT_EXTRA,
9
9
  DEFAULT_FMT,
10
10
  DEFAULT_HACK,
11
+ DEFAULT_PAGES,
11
12
  DEFAULT_SANITIZERS,
12
13
  DEFAULT_SEMVER,
13
14
  } from './defaults';
14
- import { type AiJob, Arch, type Clippy, type Global, type Release, type RustJobs } from './types';
15
+ import { type AiJob, Arch, type Clippy, type Global, type PageJobs, type Release, type RustJobs } from './types';
15
16
 
16
17
  export * from './types';
17
18
 
@@ -33,6 +34,7 @@ export class RustWorkflow {
33
34
  private global: Global;
34
35
  private release: Release;
35
36
  private ai: AiJob;
37
+ private pages: PageJobs;
36
38
 
37
39
  constructor() {
38
40
  this.jobs = {
@@ -57,6 +59,7 @@ export class RustWorkflow {
57
59
  os: [Arch.AMD64],
58
60
  };
59
61
  this.ai = DEFAULT_AI;
62
+ this.pages = DEFAULT_PAGES;
60
63
  }
61
64
 
62
65
  linuxPackages(packages: string[]) {
@@ -81,6 +84,11 @@ export class RustWorkflow {
81
84
  return this;
82
85
  }
83
86
 
87
+ enableMdBook() {
88
+ this.pages.mdbook.if = true;
89
+ return this;
90
+ }
91
+
84
92
  clippy(opts?: Partial<Clippy>) {
85
93
  if (opts?.flags) this.jobs.clippy.flags = opts.flags;
86
94
  if (opts?.run) this.jobs.clippy.run = opts.run;
@@ -116,6 +124,7 @@ export class RustWorkflow {
116
124
  // # os: windows-latest
117
125
  return {
118
126
  ai: this.ai,
127
+ pages: this.pages,
119
128
  release: {
120
129
  bin: this.release.bin,
121
130
  publish: this.release.publish,
package/src/types.ts CHANGED
@@ -5,12 +5,24 @@ export enum Arch {
5
5
  MAC = 'vars.RUNNER_MAC',
6
6
  }
7
7
 
8
+ export interface PageJob {
9
+ if: boolean | string;
10
+ path: string;
11
+ version: string;
12
+ command: string;
13
+ }
14
+
15
+ export interface PageJobs {
16
+ mdbook: PageJob;
17
+ }
18
+
8
19
  export interface AiJob {
9
20
  enabled: boolean;
10
21
  allowed_bots: string;
11
22
  claude_args: string;
12
23
  use_sticky_comment: boolean;
13
24
  track_progress: boolean;
25
+ prompt: string;
14
26
  }
15
27
 
16
28
  export interface Global {
package/.checkov.yml DELETED
@@ -1,7 +0,0 @@
1
- # See: https://www.checkov.io/1.Welcome/Quick%20Start.html
2
-
3
- compact: true
4
- quiet: true
5
- skip-path:
6
- - coverage
7
- - node_modules
package/.env.example DELETED
@@ -1,61 +0,0 @@
1
- # dotenv-linter:off IncorrectDelimiter
2
-
3
- # Do not commit your actual .env file to Git! This may contain secrets or other
4
- # private information.
5
-
6
- # Enable/disable step debug logging (default: `false`). For local debugging, it
7
- # may be useful to set it to `true`.
8
- ACTIONS_STEP_DEBUG=true
9
-
10
- # GitHub Actions inputs should follow `INPUT_<name>` format (case-sensitive).
11
- # Hyphens should not be converted to underscores!
12
- INPUT_MILLISECONDS=2400
13
-
14
- # GitHub Actions default environment variables. These are set for every run of a
15
- # workflow and can be used in your actions. Setting the value here will override
16
- # any value set by the local-action tool.
17
- # https://docs.github.com/en/actions/learn-github-actions/variables#default-environment-variables
18
-
19
- # CI="true"
20
- # GITHUB_ACTION=""
21
- # GITHUB_ACTION_PATH=""
22
- # GITHUB_ACTION_REPOSITORY=""
23
- # GITHUB_ACTIONS=""
24
- # GITHUB_ACTOR=""
25
- # GITHUB_ACTOR_ID=""
26
- # GITHUB_API_URL=""
27
- # GITHUB_BASE_REF=""
28
- # GITHUB_ENV=""
29
- # GITHUB_EVENT_NAME=""
30
- # GITHUB_EVENT_PATH=""
31
- # GITHUB_GRAPHQL_URL=""
32
- # GITHUB_HEAD_REF=""
33
- # GITHUB_JOB=""
34
- # GITHUB_OUTPUT=""
35
- # GITHUB_PATH=""
36
- # GITHUB_REF=""
37
- # GITHUB_REF_NAME=""
38
- # GITHUB_REF_PROTECTED=""
39
- # GITHUB_REF_TYPE=""
40
- # GITHUB_REPOSITORY=""
41
- # GITHUB_REPOSITORY_ID=""
42
- # GITHUB_REPOSITORY_OWNER=""
43
- # GITHUB_REPOSITORY_OWNER_ID=""
44
- # GITHUB_RETENTION_DAYS=""
45
- # GITHUB_RUN_ATTEMPT=""
46
- # GITHUB_RUN_ID=""
47
- # GITHUB_RUN_NUMBER=""
48
- # GITHUB_SERVER_URL=""
49
- # GITHUB_SHA=""
50
- # GITHUB_STEP_SUMMARY=""
51
- # GITHUB_TRIGGERING_ACTOR=""
52
- # GITHUB_WORKFLOW=""
53
- # GITHUB_WORKFLOW_REF=""
54
- # GITHUB_WORKFLOW_SHA=""
55
- # GITHUB_WORKSPACE=""
56
- # RUNNER_ARCH=""
57
- # RUNNER_DEBUG=""
58
- # RUNNER_NAME=""
59
- # RUNNER_OS=""
60
- # RUNNER_TEMP=""
61
- # RUNNER_TOOL_CACHE=""
package/.gitattributes DELETED
@@ -1,3 +0,0 @@
1
- * text=auto eol=lf
2
-
3
- dist/** -diff linguist-generated=true