gagen 0.3.0 → 0.3.1

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 CHANGED
@@ -1,4 +1,4 @@
1
- # `gagen`
1
+ # gagen
2
2
 
3
3
  [![JSR](https://jsr.io/badges/@david/gagen)](https://jsr.io/@david/gagen)
4
4
  [![npm Version](https://img.shields.io/npm/v/gagen.svg?style=flat)](http://www.npmjs.com/package/gagen)
@@ -49,11 +49,11 @@ const lint = step
49
49
  // only specify the leaf steps — the other steps are pulled in automatically
50
50
  createWorkflow({
51
51
  name: "ci",
52
- on: { push: { branches: ["main"] } },
52
+ on: ["push", "pull_request"],
53
53
  jobs: [{
54
54
  id: "build",
55
55
  runsOn: "ubuntu-latest",
56
- steps: [test, lint],
56
+ steps: [lint, test],
57
57
  }],
58
58
  }).writeOrLint({
59
59
  filePath: new URL("./ci.yml", import.meta.url),
@@ -62,7 +62,35 @@ createWorkflow({
62
62
  ```
63
63
 
64
64
  This generates a `ci.yml` with steps in the correct order and figures out that
65
- it should only install deno when the lint step should be run.
65
+ it should only install deno when the lint step should be run and it defers that
66
+ step only until it's necessary.
67
+
68
+ ```yaml
69
+ # GENERATED BY ./ci.generate.ts -- DO NOT DIRECTLY EDIT
70
+
71
+ name: ci
72
+ on:
73
+ - push
74
+ - pull_request
75
+ jobs:
76
+ build:
77
+ runs-on: ubuntu-latest
78
+ steps:
79
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd
80
+ - name: Clippy
81
+ if: github.ref != 'refs/heads/main'
82
+ run: cargo clippy
83
+ - uses: denoland/setup-deno@667a34cdef165d8d2b2e98dde39547c9daac7282
84
+ if: github.ref != 'refs/heads/main'
85
+ - name: Deno Lint
86
+ if: github.ref != 'refs/heads/main'
87
+ run: deno lint
88
+ - name: Test
89
+ run: cargo test
90
+
91
+ # gagen:pin actions/checkout@v6 = de0fac2e4500dabe0009e67214ff5f5447ce83dd
92
+ # gagen:pin denoland/setup-deno@v2 = 667a34cdef165d8d2b2e98dde39547c9daac7282
93
+ ```
66
94
 
67
95
  When run normally, this writes `ci.yml`. When run with `--lint`, it reads the
68
96
  existing file and compares the parsed YAML — exiting with a non-zero code if
@@ -76,12 +104,22 @@ const lintStep = step({
76
104
  });
77
105
  ```
78
106
 
79
- ## Dependency pinning
107
+ ## Dependency pinning—the output is a lockfile
108
+
109
+ By default, `writeOrLint` pins action references to their resolved commit hashes
110
+ then stores that hash value locked in the output.
111
+
112
+ For example, if you write the following step in a workflow:
80
113
 
81
- By default, `writeOrLint` pins action references to their resolved commit
82
- hashes. A `uses` value like `actions/checkout@v6` becomes
83
- `actions/checkout@<sha>` in the output, with a mapping comment appended to the
84
- file so that the original tag is preserved:
114
+ <!-- deno-fmt-ignore -->
115
+
116
+ ```ts
117
+ step({
118
+ uses: "actions/checkout@v6",
119
+ })
120
+ ```
121
+
122
+ It will output:
85
123
 
86
124
  ```yaml
87
125
  steps:
@@ -89,6 +127,9 @@ steps:
89
127
  # gagen:pin actions/checkout@v6 = 11bd71901bbe5b1630ceea73d27597364c9af683
90
128
  ```
91
129
 
130
+ Then the next time it runs, it will read the output to get a locked set of
131
+ dependencies.
132
+
92
133
  To force re-resolving all pins, run with the `--update-pins` flag:
93
134
 
94
135
  ```sh
@@ -295,7 +336,7 @@ const preBuild = job("pre_build", {
295
336
  // automatically adds needs: [pre_build] to this job
296
337
  const wf = createWorkflow({
297
338
  name: "ci",
298
- on: { push: { branches: ["main"] } },
339
+ on: ["push", "pull_request"],
299
340
  jobs: [
300
341
  preBuild,
301
342
  {
@@ -430,14 +471,14 @@ import { createWorkflow } from "gagen";
430
471
 
431
472
  const wf = createWorkflow({
432
473
  name: "ci",
433
- on: { push: { branches: ["main"] } },
474
+ on: ["push", "pull_request"],
434
475
  permissions: { contents: "read", packages: "write" },
435
476
  });
436
477
 
437
478
  // or use a scalar value
438
479
  const wf2 = createWorkflow({
439
480
  name: "ci",
440
- on: { push: { branches: ["main"] } },
481
+ on: ["push", "pull_request"],
441
482
  permissions: "read-all",
442
483
  });
443
484
 
@@ -494,7 +535,7 @@ Call a reusable workflow from a job using `uses` instead of `runsOn`:
494
535
  ```ts
495
536
  const wf = createWorkflow({
496
537
  name: "CI",
497
- on: { push: { branches: ["main"] } },
538
+ on: ["push", "pull_request"],
498
539
  jobs: [
499
540
  {
500
541
  id: "build",
@@ -534,7 +575,7 @@ const deployStep = step.dependsOn(download)({
534
575
 
535
576
  const wf = createWorkflow({
536
577
  name: "CI",
537
- on: { push: { branches: ["main"] } },
578
+ on: ["push", "pull_request"],
538
579
  jobs: [
539
580
  { id: "build", runsOn: "ubuntu-latest", steps: [buildStep, upload] },
540
581
  // needs: [build] is inferred automatically from the artifact link
package/esm/pin.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pin.d.ts","sourceRoot":"","sources":["../src/pin.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACvB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAcxE;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,MAAM,CA2BR;AAED,MAAM,MAAM,WAAW,GAAG,CACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,KACR,MAAM,CAAC;AAEZ,8DAA8D;AAC9D,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAwB,EACjC,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,GAC1B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,EAAE,CAAA;CAAE,CA6BvC;AAED,6DAA6D;AAC7D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAI1D;AAED,8CAA8C;AAC9C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAQ5D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,QAAQ,EAAE,GACf,OAAO,CA8CT"}
1
+ {"version":3,"file":"pin.d.ts","sourceRoot":"","sources":["../src/pin.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACvB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAID,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,GACX;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAcxE;AAED,wBAAgB,UAAU,CACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,GACV,MAAM,CA2BR;AAED,MAAM,MAAM,WAAW,GAAG,CACxB,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,KACR,MAAM,CAAC;AAEZ,8DAA8D;AAC9D,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,WAAwB,EACjC,KAAK,CAAC,EAAE,SAAS,QAAQ,EAAE,GAC1B;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,EAAE,CAAA;CAAE,CAkDvC;AAED,6DAA6D;AAC7D,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,CAO1D;AAED,8CAA8C;AAC9C,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,QAAQ,EAAE,CAQ5D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,EACZ,IAAI,EAAE,QAAQ,EAAE,GACf,OAAO,CA8CT"}
package/esm/pin.js CHANGED
@@ -51,12 +51,31 @@ export function pinYamlContent(yamlStr, resolve = resolveRef, cache) {
51
51
  const content = yamlStr.replace(/^(\s+(?:-\s+)?uses:\s+)(.+)$/gm, (_match, prefix, usesValue) => {
52
52
  const trimmed = usesValue.trim();
53
53
  const parsed = parseActionUses(trimmed);
54
- if (!parsed || isCommitHash(parsed.ref))
54
+ if (!parsed)
55
55
  return `${prefix}${usesValue}`;
56
+ if (isCommitHash(parsed.ref)) {
57
+ // already pinned — preserve the existing pin entry from cache
58
+ if (cache) {
59
+ for (const entry of cache) {
60
+ const ep = parseActionUses(entry.original);
61
+ if (ep &&
62
+ `${ep.owner}/${ep.repo}` === `${parsed.owner}/${parsed.repo}` &&
63
+ entry.hash === parsed.ref) {
64
+ if (!pins.some((p) => p.original === entry.original)) {
65
+ pins.push(entry);
66
+ }
67
+ break;
68
+ }
69
+ }
70
+ }
71
+ return `${prefix}${usesValue}`;
72
+ }
56
73
  let hash = seen.get(trimmed);
57
74
  if (!hash) {
58
75
  hash = resolve(parsed.owner, parsed.repo, parsed.ref);
59
76
  seen.set(trimmed, hash);
77
+ }
78
+ if (!pins.some((p) => p.original === trimmed)) {
60
79
  pins.push({ original: trimmed, hash });
61
80
  }
62
81
  const pinned = trimmed.replace(`@${parsed.ref}`, `@${hash}`);
@@ -68,7 +87,8 @@ export function pinYamlContent(yamlStr, resolve = resolveRef, cache) {
68
87
  export function formatPinComments(pins) {
69
88
  if (pins.length === 0)
70
89
  return "";
71
- const lines = pins.map((p) => `# gagen:pin ${p.original} = ${p.hash}`);
90
+ const sorted = [...pins].sort((a, b) => a.original < b.original ? -1 : a.original > b.original ? 1 : 0);
91
+ const lines = sorted.map((p) => `# gagen:pin ${p.original} = ${p.hash}`);
72
92
  return "\n" + lines.join("\n") + "\n";
73
93
  }
74
94
  /** Extracts pin entries from file content. */
package/esm/workflow.d.ts CHANGED
@@ -44,7 +44,7 @@ export interface WorkflowTriggers {
44
44
  export interface WorkflowConfig {
45
45
  name: string;
46
46
  runName?: string;
47
- on: WorkflowTriggers;
47
+ on: WorkflowTriggers | string[];
48
48
  permissions?: Permissions;
49
49
  concurrency?: {
50
50
  group: string;
@@ -1 +1 @@
1
- {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow.d.ts","sourceRoot":"","sources":["../src/workflow.ts"],"names":[],"mappings":"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"}
package/esm/workflow.js CHANGED
@@ -47,7 +47,9 @@ export class Workflow {
47
47
  if (__classPrivateFieldGet(this, _Workflow_config, "f").runName != null) {
48
48
  obj["run-name"] = __classPrivateFieldGet(this, _Workflow_config, "f").runName;
49
49
  }
50
- obj.on = serializeTriggers(__classPrivateFieldGet(this, _Workflow_config, "f").on);
50
+ obj.on = Array.isArray(__classPrivateFieldGet(this, _Workflow_config, "f").on)
51
+ ? __classPrivateFieldGet(this, _Workflow_config, "f").on
52
+ : serializeTriggers(__classPrivateFieldGet(this, _Workflow_config, "f").on);
51
53
  if (__classPrivateFieldGet(this, _Workflow_config, "f").permissions != null) {
52
54
  obj.permissions = __classPrivateFieldGet(this, _Workflow_config, "f").permissions;
53
55
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gagen",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "Generate complex GitHub Actions YAML files using a declarative API.",
5
5
  "repository": {
6
6
  "type": "git",