Your music, beautifully tracked. All yours. (coming soon) teal.fm
teal-fm atproto

add mooover ci script

Changed files
+81
.github
workflows
scripts
+12
.github/workflows/ci.yml
··· 31 31 setup-node: "true" 32 32 cache-key-suffix: "ci-build" 33 33 34 + - name: Setup SQLx offline files 35 + run: ./scripts/setup-sqlx-offline.sh 36 + 34 37 - name: Build Node packages 35 38 run: pnpm build 36 39 ··· 73 76 setup-node: "true" 74 77 lexicons-only-rust: "true" 75 78 cache-key-suffix: "cross-${{ matrix.target }}" 79 + 80 + - name: Setup SQLx offline files 81 + run: ./scripts/setup-sqlx-offline.sh 76 82 77 83 - name: Install cross-compilation tools 78 84 run: | ··· 106 112 lexicons-only-rust: "true" 107 113 cache-key-suffix: "ci-build" 108 114 115 + - name: Setup SQLx offline files 116 + run: ./scripts/setup-sqlx-offline.sh 117 + 109 118 - name: Check Rust formatting 110 119 run: | 111 120 cargo fmt --all -- --check ··· 183 192 setup-node: "true" 184 193 rust-components: "rustfmt,clippy" 185 194 cache-key-suffix: "security" 195 + 196 + - name: Setup SQLx offline files 197 + run: ./scripts/setup-sqlx-offline.sh 186 198 187 199 - name: Install and configure cargo-audit 188 200 run: |
+69
scripts/setup-sqlx-offline.sh
··· 1 + #!/bin/bash 2 + 3 + # Script to copy .sqlx files to all Rust projects that use SQLx 4 + # This is needed for offline SQLx builds (SQLX_OFFLINE=true) 5 + 6 + set -e 7 + 8 + # Get the script directory (should be in teal/scripts/) 9 + SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" 10 + PROJECT_ROOT="$(dirname "$SCRIPT_DIR")" 11 + 12 + # Source .sqlx directory 13 + SQLX_SOURCE="$PROJECT_ROOT/.sqlx" 14 + 15 + # List of projects that use SQLx (relative to project root) 16 + SQLX_PROJECTS=( 17 + "apps/aqua" 18 + "services/cadet" 19 + "services/satellite" 20 + ) 21 + 22 + echo "🔧 Setting up SQLx offline files..." 23 + 24 + # Check if source .sqlx directory exists 25 + if [ ! -d "$SQLX_SOURCE" ]; then 26 + echo "❌ Source .sqlx directory not found at: $SQLX_SOURCE" 27 + echo " Make sure you've run 'cargo sqlx prepare' from the services directory first." 28 + exit 1 29 + fi 30 + 31 + # Copy .sqlx files to each project that needs them 32 + for project in "${SQLX_PROJECTS[@]}"; do 33 + project_path="$PROJECT_ROOT/$project" 34 + target_sqlx="$project_path/.sqlx" 35 + 36 + if [ ! -d "$project_path" ]; then 37 + echo "⚠️ Project directory not found: $project_path (skipping)" 38 + continue 39 + fi 40 + 41 + # Check if project actually uses SQLx 42 + if [ ! -f "$project_path/Cargo.toml" ]; then 43 + echo "⚠️ No Cargo.toml found in $project (skipping)" 44 + continue 45 + fi 46 + 47 + if ! grep -q "sqlx" "$project_path/Cargo.toml"; then 48 + echo "⚠️ Project $project doesn't appear to use SQLx (skipping)" 49 + continue 50 + fi 51 + 52 + echo "📦 Copying .sqlx files to $project..." 53 + 54 + # Remove existing .sqlx directory if it exists 55 + if [ -d "$target_sqlx" ]; then 56 + rm -rf "$target_sqlx" 57 + fi 58 + 59 + # Copy the .sqlx directory 60 + cp -r "$SQLX_SOURCE" "$target_sqlx" 61 + 62 + echo " ✅ Copied $(ls -1 "$target_sqlx" | wc -l) query files" 63 + done 64 + 65 + echo "✅ SQLx offline setup complete!" 66 + echo "" 67 + echo "Note: If you add new SQL queries or modify existing ones, you'll need to:" 68 + echo "1. Run 'cargo sqlx prepare' from the services directory" 69 + echo "2. Run this script again to update all project copies"