Je viens de mettre quelque chose comme cela, au travail, à l'aide de pip, le Tissu et git. Le débit est un peu comme cela, et s'inspire fortement de ce script:
- Dans notre arborescence des sources, nous maintenons un requirements.txt fichier. Nous allons maintenir manuellement.
- Quand nous faisons une nouvelle version, le Tissu script crée une archive basée sur tout treeish nous le transmettre.
- Tissu trouverez le SHA de ce que nous sommes déployer avec l'
git log -1 --format=format:%h TREEISH
. Qui nous donne de l' SHA_OF_THE_RELEASE
- Tissu aura le dernier SHA pour nos exigences fichier
git log -1 --format=format:%h SHA_OF_THE_RELEASE requirements.txt
. Ce crache la version courte de la table de hachage, comme 1d02afc
qui est le SHA de ce fichier pour cette version en particulier.
- Le Tissu script sera alors regardez-vous dans le répertoire où notre virtualenvs sont stockés sur le serveur distant(s).
- Si il n'y a pas un répertoire nommé
1d02afc
, un nouveau virtualenv est créé et le programme d'installation avec pip install -E /path/to/venv/1d02afc -r /path/to/requirements.txt
- Si il est une existante
path/to/venv/1d02afc
, rien n'est fait
Le peu de magie partie de ce passe quelque arbre-ish vous voulez git, et de faire de l'emballage (à partir de Tissu). En utilisant git archive my-branch
, git archive 1d02afc
ou tout autre chose, je suis assuré d'obtenir les paquets installé sur mes machines distantes.
Je suis allé cet itinéraire car je n'avais vraiment pas envie d'avoir un surplus de virtuenvs flottant autour de si les lots n'ont pas changé entre la libération. Je n'aime pas l'idée d'avoir les paquets réels j'ai confiance dans mon propre arborescence des sources.