化CI流水線:從第一組測(cè)試到生產(chǎn)部署)
如何為Superpowers搭建自動(dòng)化CI流水線從第一組測(cè)試到生產(chǎn)部署【免費(fèi)下載鏈接】superpowersAn agentic skills framework software development methodology that works.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/su/superpowers周五下午要合一個(gè)PR你照例手動(dòng)跑測(cè)試Skill側(cè)腳本要十幾分鐘插件側(cè)的加載回歸又忘了跑等發(fā)現(xiàn)技能優(yōu)先級(jí)解析壞了已經(jīng)耽誤了半個(gè)下午。Superpowers 持續(xù)集成要解決的就是這類(lèi)問(wèn)題——把倉(cāng)庫(kù)里兩套現(xiàn)成的自動(dòng)化測(cè)試腳本掛進(jìn)流水線讓每次合并前的檢查自動(dòng)完成。兩套測(cè)試腳本先分清各自管什么Superpowers 的測(cè)試入口就是兩個(gè)腳本都支持--help輸出統(tǒng)一是逐條 PASS/FAIL 加末尾匯總?cè)魏我豁?xiàng)失敗就以退出碼 1 結(jié)束——這正是CI最需要的行為。tests/claude-code/run-skill-tests.shSkill行為測(cè)試。默認(rèn)只跑快速單元測(cè)試加--integration才追加 10–30 分鐘的完整工作流集成測(cè)試。tests/opencode/run-tests.shOpenCode插件測(cè)試。默認(rèn)跑無(wú)外部依賴的插件加載、bootstrap緩存檢查加--integration需要本機(jī)裝好OpenCode測(cè)工具注冊(cè)和技能優(yōu)先級(jí)解析。兩個(gè)腳本還支持--test只跑指定文件、--verbose打印全量日志??焖賹拥哪J(rèn)用例各只有2–3個(gè)本地5分鐘內(nèi)出結(jié)果這是它們能掛到每個(gè)PR上的前提。更完整的目錄分工見(jiàn)標(biāo)準(zhǔn)化測(cè)試流程。 分步搭建從本地回歸到CI配置5分鐘跑通Skill回歸測(cè)試在倉(cāng)庫(kù)根目錄執(zhí)行默認(rèn)套件前提是本地裝好了Claude Code CLI——腳本開(kāi)頭會(huì)自檢并打印版本號(hào)./tests/claude-code/run-skill-tests.sh插件側(cè)回歸一條命令覆蓋./tests/opencode/run-tests.sh默認(rèn)層不依賴OpenCodeCI環(huán)境里隨便跑集成層建議留給每日任務(wù)。想抽查單個(gè)用例加--test test-plugin-loading.sh即可。CI配置PR快速層 每日集成層集成測(cè)試單次要 10–30 分鐘每個(gè)PR都跑會(huì)拖垮合并效率。分層策略是PR只跑快速層集成層交給定時(shí)任務(wù)。下面是一份可以直接改用的GitHub Actions配置其他平臺(tái)照搬步驟順序就行name: Superpowers CI on: [push, pull_request, schedule] jobs: fast: runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - run: ./tests/claude-code/run-skill-tests.sh - run: ./tests/opencode/run-tests.sh nightly: if: github.event_name schedule runs-on: ubuntu-latest steps: - uses: actions/checkoutv4 - run: ./tests/claude-code/run-skill-tests.sh --integration --timeout 600 - run: ./tests/opencode/run-tests.sh --integrationon里的 schedule 分支要自己補(bǔ)一條每日觸發(fā)的cron比如凌晨跑nightly這個(gè)job。末尾匯總區(qū)的 Passed/Failed/Skipped 三個(gè)數(shù)加上非零退出碼就是CI判綠的依據(jù)。?? 調(diào)優(yōu)與避坑集成測(cè)試超時(shí)怎么調(diào)單個(gè)測(cè)試文件的超時(shí)預(yù)算默認(rèn) 900 秒用--timeout覆蓋。CI機(jī)器普遍比筆記本慢但腳本注釋明確寫(xiě)了這個(gè)值必須覆蓋最壞用例所以別為了快而亂壓按你環(huán)境實(shí)測(cè)的最壞用例上調(diào)。環(huán)境不一致導(dǎo)致偶發(fā)失敗兩個(gè)腳本開(kāi)頭都會(huì)打印倉(cāng)庫(kù)路徑、時(shí)間和CLI版本失敗時(shí)先對(duì)比CI和本地的版本再談代碼。CI配置里把Node、Claude Code CLI、OpenCode的版本顯式釘死別用裝最新版標(biāo)準(zhǔn)化測(cè)試流程對(duì)這點(diǎn)有專門(mén)說(shuō)明。失敗怎么定位先用--test縮小到單個(gè)用例再加--verbose重跑拿全量輸出./tests/claude-code/run-skill-tests.sh --test test-sdd-workspace.sh --verbose反復(fù)出現(xiàn)的失敗別靠猜按系統(tǒng)調(diào)試技能里的根因排查走一遍。 部署測(cè)試全綠之后怎么上線Superpowers 常以git倉(cāng)庫(kù)形式裝在本機(jī)配置目錄里所以部署動(dòng)作很輕拉新代碼再驗(yàn)證插件結(jié)構(gòu)完好。cd ~/.config/opencode/superpowers git pull ./tests/opencode/test-plugin-loading.sh驗(yàn)證通過(guò)后再執(zhí)行opencode reload-plugins完成一條命令的插件熱加載。有個(gè)容易踩的坑部分 OpenCode/Bun 版本會(huì)把 git 依賴的解析結(jié)果釘在 lockfile 或緩存里重啟也拉不到新提交。更新不生效時(shí)先清 OpenCode 的包緩存或重裝插件細(xì)節(jié)見(jiàn)OpenCode安裝指南。? 今天就能做的三件事本地各跑一遍兩個(gè)默認(rèn)套件確認(rèn)結(jié)尾都是STATUS: PASSED依賴的CLI版本打印正常把PR快速層 每日集成層的YAML合入倉(cāng)庫(kù)集成層顯式帶上--timeout參數(shù)CI里固定Node、Claude Code CLI、OpenCode的版本失敗時(shí)用--test--verbose組合定位【免費(fèi)下載鏈接】superpowersAn agentic skills framework software development methodology that works.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/su/superpowers創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考