Skip to content

Add netlify.toml with build config (#11) #5

Add netlify.toml with build config (#11)

Add netlify.toml with build config (#11) #5

Workflow file for this run

name: Deploy Hugo Site
on:
push:
branches:
- main
permissions:
contents: write
jobs:
deploy:
runs-on: ubuntu-latest
env:
HUGO_VERSION: 0.155.1
steps:
- name: Install Hugo CLI
run: |
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install Node dependencies
run: |
if [ -f package.json ]; then
npm install
fi
- name: Create data directory
run: mkdir -p data
- name: Update community stats
run: |
if [ -f .github/scripts/fetch-discourse-activity.js ]; then
echo "Running Discourse activity script..."
node .github/scripts/fetch-discourse-activity.js || {
echo "Discourse script failed, creating fallback data..."
cat > data/community_stats.json << 'EOF'
{
"activities": [
{
"message": "PowerShell 7.4.1 released with security updates",
"time": "Last week",
"type": "release",
"color": "bg-green-500"
},
{
"message": "New Azure PowerShell module available",
"time": "2 weeks ago",
"type": "update",
"color": "bg-blue-500"
},
{
"message": "Community discussions active on forums",
"time": "3 days ago",
"type": "community",
"color": "bg-purple-500"
},
{
"message": "PowerShell Gallery security improvements",
"time": "1 month ago",
"type": "security",
"color": "bg-orange-500"
}
],
"stats": {
"total_topics": 15420,
"total_posts": 85230,
"active_users": 12500,
"topics_this_week": 45
},
"last_updated": "$(date -u +%Y-%m-%dT%H:%M:%S.000Z)",
"fallback": true
}
EOF
}
else
echo "No Discourse script found, creating default data..."
cat > data/community_stats.json << 'EOF'
{
"activities": [
{
"message": "PowerShell community thriving",
"time": "Ongoing",
"type": "community",
"color": "bg-blue-500"
},
{
"message": "Join our active forums",
"time": "Always",
"type": "invitation",
"color": "bg-green-500"
}
],
"stats": {
"total_topics": 15000,
"total_posts": 80000,
"active_users": 12000,
"topics_this_week": 40
},
"last_updated": "$(date -u +%Y-%m-%dT%H:%M:%S.000Z)",
"fallback": true
}
EOF
fi
- name: Verify community stats file exists
run: |
if [ -f data/community_stats.json ]; then
echo "Community stats file created successfully"
cat data/community_stats.json
else
echo "Community stats file not found"
exit 1
fi
- name: Build with Hugo
env:
HUGO_ENVIRONMENT: production
HUGO_ENV: production
run: |
rm -rf docs
hugo \
--gc \
--minify \
--destination docs
- name: Add .nojekyll file
run: touch docs/.nojekyll
- name: Commit and push to main
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add docs/ || echo "No docs directory to add"
if [ -f data/community_stats.json ]; then
git add data/community_stats.json
fi
if ! git diff --staged --quiet; then
git commit -m "Deploy Hugo site to docs/ [skip ci]"
git push
else
echo "No changes to commit"
fi