Haskell
Haskell CI στις GitHub Actions
Το GHC μεταγλωττίζει ξανά ολόκληρο το δέντρο εξάρτησης σε κάθε εκτέλεση CI.
35μ → 9μ
Ψυχρή κατασκευή
35μ → 2μ
Ζεστή κατασκευή
Γιατί συμβαίνει
Τι να αλλάξει
- Προσωρινή αποθήκευση ~/.cabal/store ή ~/.stack με πλήκτρα στο αρχείο παγώματος ή επίλυσης
- Επίσης αποθηκεύστε προσωρινά το dist-newstyle ή το .stack-work για σταδιακή επαναχρησιμοποίηση
- Καρφιτσώστε ρητά την έκδοση GHC — ένα χτύπημα ακυρώνει τα πάντα
- Χρησιμοποιήστε έναν δρομέα 16 vCPU και -j για παραλληλισμό μεταξύ των πακέτων
Haskell on runnerhut
Το επόμενο build σας μπορεί να είναι διπλάσια γρήγορο, στη μισή τιμή
Ξεκινήστε δωρεάν. Η αποχώρηση είναι η ίδια μία γραμμή — δημοσιεύουμε κι αυτό το diff.
Σχετικά
RustΤο Cargo δημιουργεί ξανά ολόκληρο το γράφημα εξάρτησης σχεδόν σε κάθε εκτέλεση CI.ΠήγαινεΟι εκδόσεις Go είναι γρήγορες τοπικά και ανεξήγητα αργές στο CI.PythonΗ εγκατάσταση του pip διαρκεί λίγα λεπτά και το pytest εκτελείται σε έναν μόνο πυρήνα.Node.jsΤο npm ci γράφει δεκάδες χιλιάδες μικρά αρχεία σε κάθε εκτέλεση.