Commit 400feb6
authored
Release v1.1.0 (#17)
* feat: secrets input accepts a map; log per-call API timing
Three changes from the latest deploy run feedback.
1. Map-shaped `secrets` input
Mirror the `tags` refactor: accept a YAML block mapping (the canonical
workflow form) or a JSON object string, instead of multi-line
`KEY=VALUE` lines. Same key validation as before — must start with a
letter or underscore, alphanumeric + underscores only — and secret
values can still contain any characters. Each value is added to the
runner's secret-mask list before any API call.
2. Per-call API response time
Every Spice Cloud Management API call now logs
`<METHOD> <path> → <status> <statusText> (<durationMs>ms)` so the
user can see each request's latency inline. Network failures log
`<METHOD> <path> → network error in <durationMs>ms: <message>`.
Removed the redundant pre-call path logs in deploy.ts that the
timing line now covers.
3. Branch missing from step summary
The list-deployments endpoint sometimes returns Deployment objects
without `branch` even when the create request set it. The summary
now falls back to the `branch` and `commit-sha` inputs we sent so
the right values surface even when the API echoes them inconsistently.
Tests: 107 passing (up from 101). New cases cover the YAML and JSON
secret forms (incl. quote-stripping, special characters in values, and
JSON validation) and the post-rebuild `dist/` round-trip.
* chore: bump version to 1.1.0 for release
- package.json: 1.0.0 → 1.1.0.
- CHANGELOG.md: collapse the [Unreleased] block into a [1.1.0] section
dated 2026-05-03, with explicit Breaking changes / Added / Changed /
Fixed buckets. Added an empty [Unreleased] header for future entries.
The release rolls up everything since v1.0.0:
- Breaking: secrets input switched from KEY=VALUE to YAML/JSON map
(matches `tags`); tag-value validation tightened to alphanumeric +
`_@-` only.
- Added: `org`, `flight-url`, `dataset-ready-timeout-seconds` inputs;
`datasets` output; auto-captured `repository` tag; per-call
`<METHOD> <path> → <status> (<ms>ms)` API timing in logs.
- Changed: action runtime bumped from Node 20 to Node 24.
- Fixed: app-url URL pattern, SQL probe gRPC connection, api-key field
names, step-summary branch fallback, punycode deprecation warning,
action.yml `${{ … }}` example evaluation bug.
* Revert "chore: bump version to 1.1.0 for release"
This reverts commit 57ecfd2.
* chore: bump version to 1.1.0 for release
- package.json: 1.0.0 → 1.1.0.
- CHANGELOG.md: collapse the [Unreleased] block into a [1.1.0] section
dated 2026-05-03, with explicit Breaking changes / Added / Changed /
Fixed buckets. Added an empty [Unreleased] header for future entries.
The release rolls up everything since v1.0.0:
- Breaking: secrets input switched from KEY=VALUE to YAML/JSON map
(matches `tags`); tag-value validation tightened to alphanumeric +
`_@-` only.
- Added: `org`, `flight-url`, `dataset-ready-timeout-seconds` inputs;
`datasets` output; auto-captured `repository` tag; per-call
`<METHOD> <path> → <status> (<ms>ms)` API timing in logs.
- Changed: action runtime bumped from Node 20 to Node 24.
- Fixed: app-url URL pattern, SQL probe gRPC connection, api-key field
names, step-summary branch fallback, punycode deprecation warning,
action.yml `${{ … }}` example evaluation bug.
* fix: address PR review comments
- src/main.ts: Use a length-aware fallback (deployment.branch?.length
? deployment.branch : inputs.branch ?? "") so the step summary still
falls back when the API returns an empty string, while documenting
why we treat empty-string as equivalent to missing here.
- src/secrets.ts: Stop calling `.trim()` on secret values. Strip only
the leading whitespace separator after `:` and a matching pair of
outer quotes; trailing whitespace and inner whitespace are preserved
verbatim. Also pass the un-trimmed raw input to parseBlockMap so a
trailing space on the last line isn't lost. Whitespace-significant
values still need quoting to make the boundaries explicit.
- src/api.ts: Move the timing log to AFTER the response body is read
so the duration reflects true end-to-end request latency, not just
time-to-first-byte. Body-read errors retry on the next attempt and
fail with a clear `Failed to read response body for …` message on
exhaustion.
New tests cover trailing whitespace preserved in unquoted secret
values, leading whitespace preserved inside quoted secret values, and
multiple-spaces-after-colon handling.1 parent a8db3ea commit 400feb6
2 files changed
Lines changed: 27 additions & 20 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
23 | 23 | | |
24 | 24 | | |
25 | | - | |
26 | | - | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
27 | 31 | | |
28 | 32 | | |
29 | | - | |
30 | | - | |
| 33 | + | |
31 | 34 | | |
32 | 35 | | |
| 36 | + | |
| 37 | + | |
33 | 38 | | |
34 | | - | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
35 | 42 | | |
36 | 43 | | |
37 | 44 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
| |||
0 commit comments