본문으로 건너뛰기
cccskills
무료GitHub에 공개

nightly

Cut or check Runner nightlies — one workflow for macOS and Windows, one public prerelease per channel (nightly from main, remote-nightly from the nightly-remote umbrella), shared stamp, and separate stable feeds

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구GitHub
설치 방법 보기

포함된 파일(1)

  • SKILL.md10.2 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Nightly

One nightly.yml dispatch builds both platforms by default from one SHA and UTC stamp. platform=macos or platform=windows selects one. One rolling public nightly prerelease serves macOS DMGs, a signed Sparkle appcast, Windows x64 installers, and matching minisign signatures. Each platform keeps two builds by stamp independently on that release. Production feeds and releases/latest stay separate. Contract: docs/arch/arch.md §14 and docs/arch/windows.md.

An explicit request to run authorizes that workflow dispatch. Reading or editing this skill and check do not authorize dispatch. Nightly is a rolling development channel identified by its commit; official version tags are separate, and no nightly crate-version bump is needed. Commit, push, merge, tagging, direct release mutation, app launch/restart, and installation require the user's explicit instruction. Record only observed results; never invent a successful cut or a PC smoke result.

Usage

/nightly [run [both|macos|windows] [remote] | check [both|macos|windows] [remote]] — no action means run; omitted platform means both; remote selects the remote nightly (see Remote nightly).

run [platform]

  1. Preflight — stop on any failure and report it.
    • git fetch origin; require branch main, a clean tree (git status --short empty), and git rev-parse main origin/main equal. Capture the full origin/main SHA. Do not push local commits without instruction.
    • Check for any queued or running nightly of the same channel, including other platforms: gh run list --workflow nightly.yml --limit 30 --json databaseId,status,displayTitle,headSha. Stop if such a run is not completed; all platforms share their channel's concurrency group, so a dispatch cancels the entire older run of that channel. A run of the other channel does not block.
    • CI for the SHA: gh run list --commit <sha> --workflow ci.yaml --limit 1 --json status,conclusion. Missing or completed without success → stop. Queued/in-progress is fine: the single publish job waits for CI and verifies its successful conclusion. Both macOS and Windows CI must pass even for a single-platform cut.
    • If the Runner MCP is reachable, report running missions from mission_list_summary. A successful cut can produce a nightly update offer and a Windows background download. Installation/restart remains a separate user action and interrupts live PTYs.
  2. Dispatch: gh workflow run nightly.yml --ref main for both, or append -f platform=macos / -f platform=windows. Find the new run with gh run list --workflow nightly.yml --branch main --limit 5 --json databaseId,status,headSha,displayTitle,createdAt; require the selected Nightly (<platform>) title, creation after dispatch, and headSha equal to preflight. If the source changed during dispatch, report the mismatch and do not claim the intended cut succeeded.
  3. Watch: gh run watch <id> --exit-status. On failure, inspect gh run view <id> --log-failed and report the failing step. A failed/cancelled selected build prevents publication of both platforms on a both run. Failure or cancellation during publication can leave some files uploaded; report the cut incomplete and do not automatically retry.
  4. Verify: run check for the selected platform(s), using this run's exact commit-based identity, stamp, and SHA. The shared identity is in prepare's build-identity outputs/log and the successful publication job summary. Require the whole run to have succeeded, not just one build job.
  5. Record: nothing in docs/. The workflow run, the nightly tag and the release's assets and notes are the record of a cut; docs/impls/archive/504-nightly-channel-unification.md is the archived program record and keeps only its own first-cut section. Report installed upgrade/PC results only after observing them or receiving them from Jason.
  6. Report: shared identity, run result, download links, changes included, and any installed-upgrade checks still pending. macOS nightlies can update through Sparkle; Windows nightlies use the in-app updater. Do not install or restart either app from this skill without explicit instruction.

check [platform]

This is read-only and does not dispatch. Read recent nightly.yml runs with gh run list --workflow nightly.yml --branch main --limit 10 --json databaseId,status,conclusion,headSha,createdAt,displayTitle. A both run applies to both platforms; a later single-platform cut may mean their assets now have different stamps on the same release. The nightly tag points at the last published cut, so git fetch origin refs/tags/nightly:refs/tags/nightly then git log nightly..origin/main --oneline describes what a new cut would pick up; the release notes list what the current cut has beyond the latest official release. A single-platform cut moves the tag too, so an unselected platform’s assets can be older than the tag: read their stamps from the filenames.

Read gh release view nightly --json isPrerelease,isDraft,assets once; require isPrerelease=true, isDraft=false, every selected platform’s expected filenames, and at most two timestamped installers and two DMGs independently. Require the shared notes from script/nightly-release-notes.md when checking the publish workflow; release notes cover installation and updates on both platforms. Sort by trailing YYYYMMDD.HHMM stamp, not by the version prefix. Both apps display Nightly (<sha>), independently of the crate version. The UTC stamp orders artifacts and updates; the short commit identifies their source. For example, a Windows artifact identity is nightly.abc1234.20260908.0100.

  • macOS / nightly: require Runner-Nightly-<sha>.<stamp>-arm64.dmg and appcast.xml. Check anonymous DMG access with curl --silent --show-error --fail --head --location <asset-url>; download and parse the appcast. Its single signed enclosure must point to that DMG at https://github.com/yicheng47/runner/releases/download/nightly/, with the expected stamp, seven-character commit as its short version, and arm64 hardware requirement. Sparkle supplies the app name in its native alert; Runner’s own update display is Nightly (<sha>). The release page is https://github.com/yicheng47/runner/releases/tag/nightly.
  • Windows / nightly: require Runner-Setup-nightly.<sha>.<stamp>-x64.exe and its exact .sig; anonymous access must succeed for both at https://github.com/yicheng47/runner/releases/download/nightly/. Installers/signatures prune together. Portable ZIPs are retired. The release page is https://github.com/yicheng47/runner/releases/tag/nightly.
  • Stable isolation: verify gh api repos/yicheng47/runner/releases/latest --jq .tag_name still identifies the current production release (0.8.2 when #502 was implemented), not a nightly. Do not report a real installed update or production Sparkle check as tested merely because release metadata is correct.

Remote nightly

While web remote control (#836) is built on the nightly-remote umbrella, remote cuts or checks the separate remote-nightly release from that branch, so nightly keeps tracking main. Everything above applies with these substitutions:

  • Source: git fetch origin and capture git rev-parse origin/nightly-remote; no local checkout of the umbrella is needed. CI runs on umbrella pushes, so the same CI gate applies to that SHA.
  • Dispatch: gh workflow run nightly.yml --ref nightly-remote -f channel=remote-nightly, plus -f platform=… for one platform. Find the run with --branch nightly-remote and the title Remote Nightly (<platform>). The workflow refuses remote-nightly from any other branch, and nightly from any branch but main.
  • Check: release and tag remote-nightly; macOS Runner-Remote-Nightly-<sha>.<stamp>-arm64.dmg and appcast.xml, Windows Runner-Setup-remote-nightly.<sha>.<stamp>-x64.exe and its .sig, all under https://github.com/yicheng47/runner/releases/download/remote-nightly/. The notes end with script/remote-nightly-release-notes.md, the apps display Remote Nightly (<sha>), and git log remote-nightly..origin/nightly-remote --oneline describes what a new cut would pick up.

Notes

  • Nightlies are dispatch-only: a push to main runs CI alone. Nightlies need no crate-version bump or relationship to the next official version. One publish job validates selected artifacts, gates on CI once, uploads the DMG before its appcast and the installer before its signature, checks public downloads, then prunes. All uploads target nightly, and one public verification reads that release before either platform prunes. A single-platform cut leaves the other platform’s assets/feed and retention untouched. An upload or download failure reports the cut incomplete and prevents all pruning.
  • Nightly and production use com.wycstudios.runner / Runner.app on macOS and retain ~/Library/Application Support/com.wycstudios.runner/. Installing a nightly over Runner switches it to the nightly feed; installing a stable DMG switches it back. Windows follows the same install-to-switch rule. Public prereleases can be found by browsing, while production installs read their separate stable feed.
  • One-time transition: Jason installs the first unified Mac DMG over Runner.app, then deletes Runner Nightly.app by hand; its old bundle id cannot update through Sparkle to the new one. The PC also needs a manual install because its existing build reads nightly-win. After the PC reads nightly, Jason deletes the old nightly-win release and tag by hand. There is no transition mirror; neither run nor check reads or writes that release. Dormant Windows installs reinstall from nightly after it is deleted. These manual steps still require explicit authorization.
  • Production releases remain a different path: tag vX.Y.Z at a bare X.Y.Z crate version → release.yml builds a draft; publishing is the human's switch. Do not tag from this skill.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

bug

무료

Report, list, or manage bug reports as GitHub issues

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

yicheng47/runner3412026년 10월 20일 업데이트

feature

무료

File, list, or manage feature issues, and write a feature's spec when its development starts

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

yicheng47/runner3412026년 10월 20일 업데이트

release

무료

Cut a Runner production release — bump the workspace version, tag vX.Y.Z, let release.yml build the draft for both platforms, write bilingual release notes (English, with 中文 collapsed in a details block), hand the publish switch to the user, and sweep the shipped work's docs once the release is live

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

yicheng47/runner3412026년 10월 20일 업데이트

yicheng47의 스킬 모두 보기

이 스킬의 문제 신고