Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 3 additions & 10 deletions .github/actions/beta-notes/action.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
name: Beta notes
description: >-
Tester notes for a beta build. Hand-written notes pass through; otherwise
Claude reads the pull requests and code changed since a base build, such as
Tester notes for a beta build. Claude reads the pull requests and code changed since a base build, such as
the last store release, and writes short bullets. A range with no
user-facing commits, or any Claude failure, gives the fallback, so a beta
never waits on it.
inputs:
notes:
description: Hand-written notes; when set, they are the output and Claude does not run.
required: false
default: ""
app:
description: App name Claude writes for, e.g. put.io for Apple TV.
required: true
Expand Down Expand Up @@ -65,10 +60,10 @@ inputs:
default: ${{ github.token }}
outputs:
notes:
description: Notes as one bullet per line, or the hand-written notes or fallback.
description: Notes as one bullet per line, or the fallback.
value: ${{ steps.finish.outputs.notes }}
source:
description: manual, claude, or fallback.
description: claude or fallback.
value: ${{ steps.finish.outputs.source }}
runs:
using: composite
Expand All @@ -77,7 +72,6 @@ runs:
id: plan
shell: bash
env:
NOTES: ${{ inputs.notes }}
APP: ${{ inputs.app }}
BASE_REF: ${{ inputs.base }}
TAG_PATTERN: ${{ inputs.tag-pattern }}
Expand All @@ -104,7 +98,6 @@ runs:
id: finish
shell: bash
env:
NOTES: ${{ inputs.notes }}
RESULT: ${{ runner.temp }}/beta-notes-result.json
MAX_LENGTH: ${{ inputs.max-length }}
FALLBACK: ${{ inputs.fallback }}
Expand Down
5 changes: 1 addition & 4 deletions .github/actions/beta-notes/finish.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,7 @@ set -euo pipefail

notes=""
source=fallback
if [ -n "$NOTES" ]; then
notes="$NOTES"
source=manual
elif [ -s "$RESULT" ]; then
if [ -s "$RESULT" ]; then
if jq -e '.is_error' "$RESULT" > /dev/null; then
echo "beta-notes: Claude failed: $(jq -r '.result // .subtype' "$RESULT" | head -c 300)" >&2
fi
Expand Down
5 changes: 0 additions & 5 deletions .github/actions/beta-notes/plan.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,6 @@ set -euo pipefail

rm -f "$RESULT"

if [ -n "$NOTES" ]; then
echo "run=false" >> "$GITHUB_OUTPUT"
exit 0
fi

head="$(git rev-parse HEAD)"
base="$BASE_REF"
if [ -z "$base" ] && [ -n "$TAG_PATTERN" ]; then
Expand Down
3 changes: 1 addition & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,6 @@ steps:
tag-pattern: apple-tv-v* # release tags
```

- Hand-written `notes` pass through, and Claude does not run.
- The base build is `base`, or the newest tag matching `tag-pattern` below
the build commit.
- A range with no `feat`, `fix`, or `perf` commit outside the `deps`, `ci`,
Expand All @@ -176,7 +175,7 @@ steps:
- A Claude failure, an empty list, or a missing base build gives `fallback`;
a beta never waits on Claude.
- Bullets past `max-length` are dropped; set `500` for Google Play.
- `source` says whether the notes are `manual`, `claude`, or `fallback`.
- `source` says whether the notes are `claude` or `fallback`.

The action authenticates through workload identity federation: it exchanges
the job's GitHub OIDC token, so no key is stored. Its defaults name put.io's
Expand Down