a new start

This commit is contained in:
valknarness
2025-10-25 16:09:02 +02:00
commit b63592f153
94 changed files with 23058 additions and 0 deletions

100
.github/workflows/db.yml vendored Normal file
View File

@@ -0,0 +1,100 @@
name: Build Awesome Database
on:
schedule:
# Run every 6 hours
- cron: '0 */6 * * *'
workflow_dispatch: # Manual trigger
push:
branches:
- main
paths:
- '.github/workflows/db.yml'
- 'scripts/build-db.js'
jobs:
build-database:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Build SQLite Database
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
node scripts/build-db.js
- name: Generate database metadata
run: |
DB_SIZE=$(du -h awesome.db | cut -f1)
DB_HASH=$(sha256sum awesome.db | cut -d' ' -f1)
TIMESTAMP=$(date -u +"%Y-%m-%dT%H:%M:%SZ")
cat > db-metadata.json << EOF
{
"version": "${GITHUB_SHA}",
"timestamp": "${TIMESTAMP}",
"size": "${DB_SIZE}",
"hash": "${DB_HASH}",
"lists_count": $(sqlite3 awesome.db "SELECT COUNT(*) FROM awesome_lists"),
"repos_count": $(sqlite3 awesome.db "SELECT COUNT(*) FROM repositories"),
"readmes_count": $(sqlite3 awesome.db "SELECT COUNT(*) FROM readmes")
}
EOF
cat db-metadata.json
- name: Upload database artifact
uses: actions/upload-artifact@v4
with:
name: awesome-database
path: |
awesome.db
db-metadata.json
retention-days: 90
- name: Deploy to hosting (optional)
if: github.ref == 'refs/heads/main'
run: |
# Upload to your hosting provider
# Example for S3:
# aws s3 cp awesome.db s3://your-bucket/awesome.db
# aws s3 cp db-metadata.json s3://your-bucket/db-metadata.json
# Or webhook to your Next.js app
curl -X POST "${{ secrets.WEBHOOK_URL }}" \
-H "Content-Type: application/json" \
-H "X-GitHub-Secret: ${{ secrets.WEBHOOK_SECRET }}" \
-d @db-metadata.json
- name: Create release (on schedule)
if: github.event_name == 'schedule'
uses: softprops/action-gh-release@v1
with:
tag_name: db-${{ github.run_number }}
name: Database Build ${{ github.run_number }}
body: |
Automated database build
**Statistics:**
- Lists: $(sqlite3 awesome.db "SELECT COUNT(*) FROM awesome_lists")
- Repositories: $(sqlite3 awesome.db "SELECT COUNT(*) FROM repositories")
- READMEs: $(sqlite3 awesome.db "SELECT COUNT(*) FROM readmes")
**Generated:** $(date -u)
files: |
awesome.db
db-metadata.json
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}