Implementazione continua con gitignore


12

Quando si esegue una distribuzione continua con Git, come si gestiscono i file ignorati in gitignore? Quei file vengono ignorati per motivi di privacy (cioè non li vogliono essere inviati ad altri repository remoti, come GitHub), ma con quei file ignorati che non vengono inviati al repository di distribuzione continua, l'applicazione non verrà eseguita (poiché i file ignorati sono necessario per il corretto funzionamento del software).

Come fanno le persone a farlo? In questo caso, Git non è il miglior candidato per la distribuzione continua a causa di file ignorati?


2
Sto votando per chiudere questa domanda come fuori tema perché non mostra un minimo sforzo di ricerca di base.
Scant Roger

3
Non vedo la mancanza di sforzi di ricerca. L'OP sembra capire cosa fa perfettamente Gitignore . Quello che vedo è un problema XY, ma poiché sia ​​X che Y sono spiegati nella domanda, Doc è stato in grado di scrivere una risposta decente che si spera risolva il vero problema del PO.
Ixrec,

1
@ScantRoger: onestamente, la domanda potrebbe essere scritta meglio, ma è ben lungi dall'essere così grave che merita un voto attento.
Doc Brown,

Risposte:


14

Se il tuo software non funziona senza quei file, avrai un problema con qualsiasi tipo di distribuzione, manuale, automatica o continua, con qualsiasi tipo di VCS o anche senza alcun VCS. Quindi, o modifica il tuo software in modo che possa essere effettivamente eseguito senza quei file (ad esempio, potrebbe assumere una sorta di "parametri predefiniti" se i file mancano) oppure fornisci una versione di quei file adatta alla distribuzione che viene copiata ( come parte del passaggio di distribuzione) nell'ambiente di destinazione nel caso in cui non sia presente una versione "privata" di tali file.

Se stai parlando di qualcosa come un file contenente le credenziali del database per accedere al server, che, per motivi di sicurezza, non vuoi avere il controllo della versione, dovrai inserire quel file nell'ambiente di distribuzione una volta , probabilmente manualmente , da una persona che ha diritti sufficienti o conosce la password. Ma questo è intenzionale e non dovrebbe impedirti di distribuire quotidianamente nuove versioni del tuo software. Basta assicurarsi che i file delle credenziali in atto non vengano sovrascritti quando si distribuisce una nuova versione.


D'accordo, se il check-out da vcs non è sufficiente per la compilazione e l'esecuzione, anche se a capacità ridotta, l'albero dei sorgenti è incompleto.
Newtopiano,

@Newtopian: nota che questo può essere davvero intenzionale e corretto (vedi il mio esempio).
Doc Brown,

2

Un'altra opzione è quella di archiviare le informazioni sensibili all'interno dello strumento di distribuzione. E la configurazione dello strumento di distribuzione in un repository di origine privato separato.

Lasciare i dati sensibili sulla macchina di destinazione funziona, ma potrebbe marcire il bit - qualcuno li cambia non seguendo le procedure, la macchina frena e nessuno ricorda le impostazioni corrette, ecc ...

Saltstack per esempio ha https://docs.saltstack.com/en/latest/topics/pillar/index.html

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.