Collect Analytics #212
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Collect Analytics | |
| on: | |
| schedule: | |
| # Run daily at 6:00 AM UTC (12:00 AM Denver / MDT) | |
| - cron: '0 6 * * *' | |
| workflow_dispatch: # Allow manual trigger | |
| permissions: | |
| contents: write | |
| jobs: | |
| collect: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| token: ${{ secrets.GH_STATS_TOKEN || github.token }} | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: '20' | |
| cache: 'npm' | |
| - name: Install dependencies | |
| run: npm ci | |
| - name: Setup database (if needed) | |
| run: npm run setup-db | |
| - name: Collect GitHub stats | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GH_STATS_TOKEN }} | |
| GITHUB_ORG: opena2a-org,ecolibria | |
| run: npm run collect | |
| - name: Collect npm stats | |
| env: | |
| NPM_AUTHOR: ecolibria | |
| NPM_PACKAGES: opena2a-cli | |
| run: npm run collect-npm | |
| - name: Collect PyPI stats | |
| env: | |
| PYPI_PACKAGES: cryptoserve,cryptoserve-core,cryptoserve-auto,cryptoserve-client,aim-sdk | |
| run: npm run collect-pypi | |
| - name: Collect Docker stats | |
| env: | |
| DOCKER_IMAGES: opena2a/dvaa,opena2a/aim-server,opena2a/aim-dashboard | |
| run: npm run collect-docker | |
| - name: Generate markdown files | |
| run: npm run generate-md | |
| - name: Generate summary JSON | |
| run: npm run generate-summary | |
| - name: Commit and push changes | |
| run: | | |
| git config user.name "GitHub Actions Bot" | |
| git config user.email "[email protected]" | |
| git add data/analytics.db data/badge-*.json data/stats-*.json data/npm-stats-*.json data/pypi-stats-*.json data/docker-badge-*.json data/summary.json ANALYTICS.md ANALYTICS_DETAILED.md | |
| git diff --staged --quiet || git commit -m "chore: update analytics data [skip ci]" | |
| git push || echo "No changes to push" |