Skip to content

Update CSV Files

Update CSV Files #18

Workflow file for this run

name: Update CSV Files
on:
workflow_dispatch:
jobs:
update_csv:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
ref: release_stats
- name: Set up Git configuration
run: |
git config --local user.email "[email protected]"
git config --local user.name "SapMachine Github Actions Bot"
- name: Fetch and process CSV files
run: |
GITHUB_FOLDER="https://api.github.com/repos/SAP/SapMachine-infrastructure/contents/stats?ref=release_stats"
response=$(curl -s -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" "$GITHUB_FOLDER")
files=$(echo "$response" | jq -r '.[] | select(.name | endswith(".csv")) | .download_url')
BRANCH_NAME="update-csv-$(date +%s)"
git checkout -b "$BRANCH_NAME"
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
echo "$modified_content" > "stats/${file##*/}"
echo "Updated stats/${file##*/}"
else
echo "No changes made to $file"
fi
done
git add stats/*.csv
git commit -m "Update CSV files: set os_name to Linux for RPM files" || echo "No changes to commit"
# Check if there are any changes before trying to push
if ! git diff --cached --quiet; then
git push origin "$BRANCH_NAME"
hub pull-request -m "Update CSV files: set os_name to Linux for RPM files" || echo "Failed to create PR."
else
echo "No changes made; skipping PR creation."
fi