Ich versuche, den Footprint unserer Projekte auf dem Produktionsserver zu reduzieren. Ich bin kein Experte für solche Operationen, aber ich habe das folgende Bash-Skript entwickelt.Download von einem privaten Github Repo
VERSION=$1
rm -rf pydata
# clone the entire github repository. This is kind of inefficient as we delete the .git folder in a moment
git clone [email protected]:tt/pydata.git
cd pydata
# checkout the correct version
git checkout $VERSION --
# Print the version into a txt file
echo $VERSION > version.txt
# Build the Python environment using conda
make build
# delete a bunch of files not needed on the server but contained in the git repository (documentation etc.)
xargs rm -rf < delete.txt
rm delete.txt
# back into the folder
cd ..
Gibt es eine elegante Möglichkeit, den neuesten Tag zu finden (der Benutzer, falls nicht das gewünschte Etikett bereitstellt (in $ 1))?
Meine kleine Forschung zeigt, dass eher Klonen der gesamten Git rep und dann löschen der .git-Ordner wäre es besser, git-Archiv zur Verfügung zu haben, die nicht von github unterstützt wird?
Die Alternative wäre wget in den tar.gz-Archiven zu verwenden? Dies würde den Download des .git-Ordners verhindern, scheint aber alle möglichen zusätzlichen Kopfschmerzen zu verursachen, da SSH nicht sofort unterstützt wird.
dank
Ich würde empfehlen, Releases von einem separaten "Release" Zweig zu verwenden. Es gibt auch eine API von Github, um die neueste zu erhalten: https://developer.github.com/v3/repos/releases/#get-the-lates-release – rinukkusu