Skip to content

Update CSV Files

Update CSV Files #21

Workflow file for this run

name: Update CSV Files
on:
workflow_dispatch:
jobs:
update-csv:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
ref: release_stats
- name: Set up Git
run: |
git config --local user.email "[email protected]"
git config --local user.name "SapMachine Github Actions Bot"
- name: Fetch CSV files
id: fetch_csv
run: |
files=$(curl -s "https://api.github.com/repos/SAP/SapMachine-infrastructure/contents/stats?ref=release_stats" | jq -r '.[].download_url')
for file in $files; do
echo "Processing $file"
csv_content=$(curl -s "$file")
# Debug: Print the first 3 lines of the original content
echo "Original Content:"
echo "$csv_content" | head -n 3 || echo "Failed to print original content"
if [[ -z "$csv_content" ]]; then
echo "No content found for $file"
continue
fi
modified_content=$(echo "$csv_content" | awk -F, '
{
for (i = 1; i <= NF; i++) {
if ($i ~ /\.rpm$/ && $(i+5) == "") {
$(i+5) = "linux"; # Change the os_name field
}
}
print $0
}')
# Debug: Print the modified content
echo "Modified Content:"
echo "$modified_content" | head -n 3 || echo "Failed to print modified content"
if [[ "$csv_content" != "$modified_content" ]]; then
# Write to a temporary file first
temp_file="stats/temp_${file##*/}"
echo "$modified_content" > "$temp_file"
echo "Updated temp file: $temp_file"
# Move the temporary file to the original location
mv "$temp_file" "stats/${file##*/}"
echo "Moved $temp_file to stats/${file##*/}"
# Normalize line endings
dos2unix "stats/${file##*/}"
# Explicitly add the modified file
git add "stats/${file##*/}"
else
echo "No changes made to $file"
fi
done
git commit -m "Update CSV files: set os_name to Linux for RPM files" || echo "No changes to commit"
# Create a pull request if there are changes
if [ "$(git status --porcelain)" ]; then
branch_name="update-csv-$(date +%s)"
git checkout -b "$branch_name"
git push origin "$branch_name"
echo "Creating pull request..."
gh pr create --title "Update CSV files" --body "This PR updates the CSV files to set os_name to Linux for RPM files." --base release_stats
else
echo "No changes made; skipping PR creation."
fi