diff --git a/.gitea/workflows/deploy-server.yaml b/.gitea/workflows/deploy-server.yaml index f15a4b1..188c4f4 100644 --- a/.gitea/workflows/deploy-server.yaml +++ b/.gitea/workflows/deploy-server.yaml @@ -17,116 +17,105 @@ jobs: runs-on: ubuntu-latest steps: - - name: Pre-initialize Repository with SHA-256 + - name: Pre-initialize Repository with SHA-1 run: | mkdir -p ${{ github.workspace }} git init --object-format=sha1 ${{ github.workspace }} - - name: Manual Checkout (SHA-1 Force) - env: - # This token is automatically provided by Gitea/GitHub Actions - TOKEN: ${{ secrets.GITHUB_TOKEN }} + # - name: Manual Checkout (SHA-1 Force) + # env: + # # This token is automatically provided by Gitea/GitHub Actions + # TOKEN: ${{ secrets.GITHUB_TOKEN }} + # run: | + # # 1. Clean workspace explicitly to be safe + # rm -rf ./* ./.git + + # # 2. Initialize specifically with SHA-1 + # git init --object-format=sha1 + + # # 3. Add remote with authentication embedded + # # Use the environment variable to keep the log clean + # git remote add origin "https://$TOKEN@git.dapa.hu/dapa/assetto.git" + + # # 4. Fetch the specific branch (depth 1 for speed) + # git fetch --depth=1 origin master + + # # 5. Checkout the branch + # git checkout master + + # # 6. Initialize LFS and pull files + # # Note: If this fails, it confirms the files are missing from the server (see below) + # git lfs install + # git lfs pull + + - name: Checkout Master Branch (LFS) + uses: actions/checkout@v4 + with: + ref: master + lfs: true + fetch-depth: 0 + clean: false + + - name: Install 7-Zip run: | - # 1. Clean workspace explicitly to be safe - rm -rf ./* ./.git + sudo apt-get update + sudo apt-get install -y p7zip-full - # 2. Initialize specifically with SHA-1 - git init --object-format=sha1 - - # 3. Add remote with authentication embedded - # Use the environment variable to keep the log clean - git remote add origin "https://$TOKEN@git.dapa.hu/dapa/assetto.git" - - # 4. Fetch the specific branch (depth 1 for speed) - git fetch --depth=1 origin master - - # 5. Checkout the branch - git checkout master - - # 6. Initialize LFS and pull files - # Note: If this fails, it confirms the files are missing from the server (see below) - git lfs install - git lfs pull - - - name: Manual LFS Fetch with Debugging - env: - GIT_TRACE: 1 - GIT_TRANSFER_TRACE: 1 - GIT_CURL_VERBOSE: 1 + - name: Process Archives run: | - git lfs install - # Try to pull the specific missing files to see the real error message - git lfs fetch origin master - git lfs checkout + # 1. Define Paths + SOURCE_ROOT="./cars" + # This is where the server expects the files + DEST_ROOT="./server-data/content/cars" + mkdir -p "$DEST_ROOT" - # steps: - # - name: Checkout Master Branch (LFS) - # uses: actions/checkout@v4 - # with: - # ref: master - # lfs: true - # fetch-depth: 0 + echo "Searching for archives in $SOURCE_ROOT..." - # - name: Install 7-Zip - # run: | - # sudo apt-get update - # sudo apt-get install -y p7zip-full + # 2. Find all archives recursively (zip, 7z, rar) + find "$SOURCE_ROOT" -type f \( -name "*.zip" -o -name "*.7z" -o -name "*.rar" \) | while read archive; do - # - name: Process Archives - # run: | - # # 1. Define Paths - # SOURCE_ROOT="./cars" - # # This is where the server expects the files - # DEST_ROOT="./server-data/content/cars" - # mkdir -p "$DEST_ROOT" + # Get the filename without extension (e.g., "cars/groupA/my_car.zip" -> "my_car") + filename=$(basename -- "$archive") + car_name="${filename%.*}" - # echo "🔍 Searching for archives in $SOURCE_ROOT..." + echo "--------------------------------------" + echo "Processing: $car_name" - # # 2. Find all archives recursively (zip, 7z, rar) - # find "$SOURCE_ROOT" -type f \( -name "*.zip" -o -name "*.7z" -o -name "*.rar" \) | while read archive; do + # # Create a temp directory for extraction + # temp_dir=$(mktemp -d) - # # Get the filename without extension (e.g., "cars/groupA/my_car.zip" -> "my_car") - # filename=$(basename -- "$archive") - # car_name="${filename%.*}" + # # 3. Extract contents + # # -y: assume yes on all queries + # # -o: output directory (no space after -o) + # 7z x "$archive" -o"$temp_dir" -y > /dev/null - # echo "--------------------------------------" - # echo "Processing: $car_name" + # # 4. FILTERING LOGIC (The "Server" optimization) + # echo "Cleaning up unnecessary server files..." - # # # Create a temp directory for extraction - # # temp_dir=$(mktemp -d) + # # Remove heavy textures and previews (recursive) + # find "$temp_dir" -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" -o -name "*.dds" -o -name "*.kn5" -o -name "*.bmp" \) -delete - # # # 3. Extract contents - # # # -y: assume yes on all queries - # # # -o: output directory (no space after -o) - # # 7z x "$archive" -o"$temp_dir" -y > /dev/null + # # Remove the 'physics/csp' folder if standard physics are preferred (Optional - comment out if needed) + # # rm -rf "$temp_dir/physics/csp" - # # # 4. FILTERING LOGIC (The "Server" optimization) - # # echo "Cleaning up unnecessary server files..." + # # 5. Move to final Server Directory + # target_dir="$DEST_ROOT/$car_name" - # # # Remove heavy textures and previews (recursive) - # # find "$temp_dir" -type f \( -name "*.png" -o -name "*.jpg" -o -name "*.jpeg" -o -name "*.dds" -o -name "*.kn5" -o -name "*.bmp" \) -delete + # # Clean old version if exists + # if [ -d "$target_dir" ]; then + # rm -rf "$target_dir" + # fi + # mkdir -p "$target_dir" - # # # Remove the 'physics/csp' folder if standard physics are preferred (Optional - comment out if needed) - # # # rm -rf "$temp_dir/physics/csp" + # # Move files + # cp -r "$temp_dir"/* "$target_dir"/ - # # # 5. Move to final Server Directory - # # target_dir="$DEST_ROOT/$car_name" + # # Cleanup temp + # rm -rf "$temp_dir" - # # # Clean old version if exists - # # if [ -d "$target_dir" ]; then - # # rm -rf "$target_dir" - # # fi - # # mkdir -p "$target_dir" - - # # # Move files - # # cp -r "$temp_dir"/* "$target_dir"/ - - # # # Cleanup temp - # # rm -rf "$temp_dir" - - # echo "✅ Installed to: $target_dir" - # done + echo "✅ Installed to: $target_dir" + done # - name: Verify Installation # run: |