C++ kaugbuild VPN-i kaudu: jäta tööriistakett hosti peale
Jagamise mountimine ei ole sama mis kaugelt buildimine. Kontrolli, milline host vastab, milline kompilaator töötab ja kus elavad debugger ja võrk.
Jagamine mountitakse, redaktor avab faili ja build käib ikka sülearvutis. Miski ei anna viga, ja just see teeb asja segaseks. Kaugel asuv tee ei ole kaugel asuv tööriistakett, ja redaktor, mis suudab faili mountimise kaudu lugeda, kutsub selle peal hea meelega kohaliku kompilaatori. Lahendus on tööruum ümber tõsta, mitte ainult baidid.
Mountitud kataloog ei ole tööruum
Mountimine SSH või SMB kaudu annab sulle tee. Kas kompilaator, buildisüsteem ja debugger tulevad kaugemalt poolelt, sõltub sellest, kus redaktor otsustab neid käivitada. Paljud seadistused loevad kaugfaile ja kompileerivad neid kohapeal ning kukuvad siis läbi päisefailil, mis eksisteerib ainult serveris.
Sümptom on peen: build õnnestub osaliste tulemustega või katkeb include-teel, mis redaktoris õige välja näeb.
Tõesta, milline host vastab
Ühenda päris kaugsessiooniga, mitte mountimisega, ja käivita siis sessiooni antud terminalis kolm ainult lugemiseks mõeldud käsku. VS Code'i SSH-juhend dokumenteerib, et ühendatud kaugaknas töötab terminal kaugel hostil ja sama sessioon kannab silumist. Kui organisatsioon piirab kaugkomponente, hankige esmalt nende jaoks luba.
hostname nimetab masina, millel sa oled, pwd näitab, kus tööruum tegelikult asub, ja command -v c++ trükib kompilaatori, mille shell käivitaks. Kõik kolm vastust peaksid kirjeldama serverit, mitte sülearvutit.
Need ei tõesta, et versioon või buildi konfiguratsioon on õige. Võrdle seda projekti enda juhistega eraldi sammuna.
Jälgi üht muudatust läbi buildi ja silumise
Tee kaugtööruumis väike muudatus ja salvesta see sinna. Käivita dokumenteeritud build samast kataloogist ja kinnita, et väljund peegeldab sinu muudatust, mitte vanemat koopiat mujal. Seejärel käivita debugger sama kaugsessiooni kaudu, nii et binaarfaili tee ja töökataloog osutavad serveri buildipuusse. Lähtekoodi teede kokkulangevus on oluline, sest debugger, mis seob sinu muudatuse sülearvuti teega, silub teist faili.
Kui silumise sihtmärk teatab teedest, mis algavad sinu kohaliku kodukataloogiga, mõtleb käivituskonfiguratsioon ikka kohapeal.
Võrgu sõltuvused jäävad hosti juurde
Paketi tõmbamine, git-tehing või testijooks, mis algab buildihostil, kasutab selle hosti võrku ja volitusi, mitte sinu sülearvuti VPN-sessiooni. See, et sülearvuti jõuab privaatse paketipeeglini, ei ütle midagi selle kohta, kas server jõuab. Kui build vajab registrit, vajab server sinnani teed, ja see on tulemüüri vestlus, mitte redaktori seade.
Sama kehtib vastupidi testirakenduste kohta. Serveris oleva teenuse kättesaamine brauserist on eraldi ühendus, mis vajab kinnitatud privaatset teed või piiratud edasisaatmist, mitte avatud kuulajat.
Ühenda lahti, kaotamata tööd
Salvesta ja tee commit või vähemalt fikseeri tööpuu, enne kui ühendus katkeb. Kaugredigeerimise sessioon ei luba, et käiv build või salvestamata puhver elab võrgukatkestuse üle. Kõige jaoks, mis peab sinu sessioonist kauem kestma, kasuta projekti toetatud töö- või sessioonivoogu.
Tööjaotus on siis selge: sülearvuti on liides, server omab tööruumi ja tööriistaketti ning VPN annab tee. Failide liigutamine ja buildi liigutamine on kaks eraldi otsust.