60 lines
2.0 KiB
YAML
60 lines
2.0 KiB
YAML
name: Sync README files to Wiki
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
paths:
|
|
- '**/README.md'
|
|
- '**/readme.md'
|
|
|
|
permissions:
|
|
contents: write
|
|
|
|
jobs:
|
|
sync-wiki:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
|
|
- name: Configure Git for Wiki
|
|
run: |
|
|
git config --global user.name "GitHub Actions"
|
|
git config --global user.email "actions@github.com"
|
|
|
|
- name: Clone Wiki Repository
|
|
run: git clone https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.wiki.git ./wiki
|
|
|
|
- name: Copy README files to Wiki
|
|
run: |
|
|
# Special mappings - add specific README files to specific wiki pages
|
|
declare -A special_mappings
|
|
special_mappings["benchmarks/rotatingDrum/readme.md"]="Performance-of-phasicFlow.md"
|
|
|
|
|
|
# Process only the specially mapped files
|
|
for rel_path in "${!special_mappings[@]}"; do
|
|
if [ -f "./$rel_path" ]; then
|
|
wiki_page="${special_mappings[$rel_path]}"
|
|
echo "Processing special mapping: $rel_path -> $wiki_page"
|
|
|
|
# Get the content of the README file
|
|
content=$(cat "./$rel_path")
|
|
|
|
# Check if the wiki page already exists
|
|
if [ -f "./wiki/$wiki_page" ]; then
|
|
# Append to existing page with a section header
|
|
echo -e "\n\n## Content from $rel_path\n\n$content" >> "./wiki/$wiki_page"
|
|
else
|
|
# Create new page
|
|
echo "# $(basename "$wiki_page" .md)\n\nContent from $rel_path:\n\n$content" > "./wiki/$wiki_page"
|
|
fi
|
|
fi
|
|
done
|
|
|
|
- name: Commit and Push to Wiki
|
|
working-directory: ./wiki
|
|
run: |
|
|
git add .
|
|
git diff-index --quiet HEAD || git commit -m "Sync README files from main repository"
|
|
git push
|