ProxmoxVE/.github/workflows/auto-update-app-headers.yml
2025-01-14 14:45:04 +01:00

65 lines
2.1 KiB
YAML

name: Auto Update .app-headers with Hard Merge from Main
on:
push:
branches:
- main
paths:
- 'ct/**.sh'
workflow_dispatch:
jobs:
auto-update:
runs-on: ubuntu-latest
steps:
# Step 1: Checkout repository
- name: Checkout repository
uses: actions/checkout@v2
# Step 2: Set up Git user
- name: Set up Git
run: |
git config --global user.name "GitHub Actions"
git config --global user.email "actions@github.com"
# Step 3: Reset update-app-headers to main
- name: Reset update-app-headers branch to main
run: |
git checkout -B update-app-headers origin/main
echo "Branch update-app-headers reset to match main"
# Step 4: Ensure .app-headers file exists
- name: Ensure .app-headers file exists
run: |
touch ct/.app-headers
# Step 5: Update .app-headers with figlet output
- name: Update .app-headers
run: |
output_file="./ct/.app-headers"
> "$output_file" # Clear or create the file
current_date=$(date +"%m-%d-%Y")
echo "### Generated on $current_date" >> "$output_file"
echo "##################################################" >> "$output_file"
echo >> "$output_file"
find ./ct -type f -name "*.sh" | sort | while read -r script; do
app_name=$(grep -oP '^APP="\K[^"]+' "$script" 2>/dev/null)
if [[ -n "$app_name" ]]; then
figlet_output=$(figlet -f slant "$app_name" 2>/dev/null || echo "FIGLET ERROR: $app_name")
echo "### $(basename "$script")" >> "$output_file"
echo "APP=$app_name" >> "$output_file"
echo "$figlet_output" >> "$output_file"
echo >> "$output_file"
fi
done
# Step 6: Commit and push changes
- name: Commit and push changes
run: |
git add ct/.app-headers
git commit -m "Update .app-headers on $(date +"%Y-%m-%d")" || echo "No changes to commit"
git push --force origin update-app-headers