Skrip repositori
Skrip repositori ialah skrip shell yang anda konfigurasikan mengikut repositori
(Tetapan → Repositori → ikon terminal pada baris repositori) yang dijalankan
oleh pelayan Control Center terhadap worktree sesuatu ruang bagi repositori
itu — checkout terasing di bawah
<dataDir>/<workspaceId>/spaces/<spaceId>/repos/<repo>/ tempat ejen bekerja.
Terdapat dua jenis:
| Skrip | Bila ia berjalan | Gunakannya untuk |
|---|---|---|
| Persediaan | Sejurus selepas worktree disediakan untuk sesuatu ruang | Memasang kebergantungan, menjana fail, menyalin .env |
| Arkib | Sejurus sebelum worktree dimusnahkan atau dikutip oleh pengumpul sampah | Membersihkan sumber di luar worktree (rangkaian docker, terowong, keadaan luaran) |
Di mana skrip berjalan
Bahagian bertajuk “Di mana skrip berjalan”Kedua-dua skrip dijalankan melalui bash -lc (shell log masuk, jadi alat yang
dipasang melalui Homebrew/nvm berada pada PATH) dengan worktree sebagai
direktori kerja, dan pemboleh ubah persekitaran ini ditetapkan:
| Pemboleh ubah | Nilai |
|---|---|
CC_WORKSPACE_PATH |
Worktree (cwd skrip) |
CC_ROOT_PATH |
Repositori sumber yang didaftarkan — checkout anda sendiri |
CC_SPACE_ID |
Ruang yang memiliki worktree itu |
CC_SPACE_NAME |
Nama paparan ruang itu |
CC_REPO_NAME |
Nama paparan repositori itu |
Contohnya, skrip persediaan yang memasang kebergantungan dan membawa masuk
.env repositori yang diabaikan oleh git:
pnpm installcp "$CC_ROOT_PATH/.env" .envpnpm run buildKelakuan kegagalan
Bahagian bertajuk “Kelakuan kegagalan”- Skrip persediaan yang keluar dengan bukan sifar (atau melebihi tamat masanya selama 5 minit) menggagalkan penyediaan ruang itu: ruang tersebut menunjukkan keadaan gagal dengan pilihan cuba semula, dan hujung output larian itu direkodkan. Cuba semula akan menyediakan daripada worktree yang bersih dan menjalankan skrip itu sekali lagi — tulis skrip persediaan supaya larian semula selepas pemasangan separa berkesan (pengurus pakej sudah berkelakuan begitu).
- Skrip arkib bersifat usaha terbaik: kegagalan (atau tamat masanya selama 2 minit) direkodkan tetapi tidak pernah menyekat pemadaman. Arkib berjalan pada laluan GC tanpa sesiapa untuk menjawab gesaan (ruang dipadam, PR dicantumkan, pembersihan berjadual).
Persediaan hanya berjalan pada worktree yang baharu: menghantar semula ejen ke ruang yang sudah panas menggunakan semula checkout yang sedia ada dan tidak membayar semula pemasangan.
Sejarah larian
Bahagian bertajuk “Sejarah larian”Setiap pelaksanaan direkodkan dengan status, tempoh, kod keluar dan hujung
output terhadnya, yang kelihatan dalam dialog tetapan yang sama di bawah
“Larian terkini” (langganan repos.watchScriptRuns menstrimnya secara
langsung).
Kebenaran
Bahagian bertajuk “Kebenaran”Skrip ialah shell yang dilaksanakan oleh pelayan, jadi menulisnya terhad
kepada pentadbir ruang kerja dan dijaga oleh kelas tindakan processSpawn —
jaring guardrail yang sama yang mengawal setiap operasi penjanaan proses yang
lain.