generated from pitmonticone/LeanProject
-
Notifications
You must be signed in to change notification settings - Fork 67
/
Copy pathrun_before_push.sh
executable file
·78 lines (70 loc) · 2.55 KB
/
run_before_push.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/usr/bin/env bash
################################################################################
# TEST SCRIPT TO RUN BEFORE PUSHING CHANGES
#
# This script ensures that the key components of the Lean project are functional
# before changes are pushed to the repository by checking that:
# 1. You are in the correct directory;
# 2. The project builds successfully;
# 3. The blueprint is successfully generated in both PDF and web versions;
# 4. LaTeX declarations in the blueprint match Lean declarations in the codebase.
################################################################################
# Ensure the script is in the outermost 'equational_theories' folder
echo "Checking if you are in the correct directory..."
if [ ! -f lakefile.toml ]; then
echo "❌ Error: This doesn't appear to be the outermost 'equational_theories' directory.
Please run this script from the correct folder."
echo "Press any key to exit..."
read
exit 1
fi
echo "✅ Correct directory detected."
# Get Mathlib cache
echo "Attempting to get Mathlib cache..."
if ! lake exe cache get; then
echo "❌ Error: Failed to get Mathlib cache. Continuing without cache."
else
echo "✅ Mathlib cache successfully retrieved."
fi
# Build the project
echo "Building the project..."
if ! lake build equational_theories; then
echo "❌ Error: Project build failed. Please check the code for errors."
echo "Press any key to exit..."
read
exit 1
else
echo "✅ Project build completed successfully."
fi
# Generate the PDF version of the blueprint
echo "Generating PDF version of the blueprint..."
if ! leanblueprint pdf; then
echo "❌ Error: Failed to generate PDF version of the blueprint."
echo "Press any key to exit..."
read
exit 1
else
echo "✅ PDF version of the blueprint generated successfully."
fi
# Generate the web version of the blueprint
echo "Generating web version of the blueprint..."
if ! leanblueprint web; then
echo "❌ Error: Failed to generate web version of the blueprint."
echo "Press any key to exit..."
read
exit 1
else
echo "✅ Web version of the blueprint generated successfully."
fi
# Check declarations
echo "Checking if Lean declarations in the blueprint match the codebase..."
if ! lake exe checkdecls blueprint/lean_decls; then
echo "❌ Error: Some declarations in the blueprint do not match Lean declarations in the codebase."
echo "Press any key to exit..."
read
exit 1
else
echo "✅ All declarations match successfully."
fi
# Final message on test completion
echo "🎉 All steps completed successfully! You are ready to push."