Weekly Health Report #5
  
    
      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: Weekly Health Report | |
| on: | |
| schedule: | |
| # Run every Monday at 9 AM UTC | |
| - cron: "0 9 * * 1" | |
| workflow_dispatch: # Allow manual trigger | |
| jobs: | |
| health-check: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| issues: write | |
| steps: | |
| - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # ratchet:actions/[email protected] | |
| - uses: actions/setup-node@2028fbc5c25fe9cf00d9f06a71cc4710d4507903 # ratchet:actions/[email protected] | |
| with: | |
| node-version: lts/* | |
| - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # ratchet:actions/[email protected] | |
| with: | |
| path: ~/.npm | |
| key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} | |
| restore-keys: | | |
| ${{ runner.os }}-node- | |
| - name: Install Dependencies | |
| run: npm ci --ignore-scripts --no-audit --no-progress --prefer-offline | |
| - name: Run Health Check | |
| run: node tests/health_check.mjs | |
| continue-on-error: true | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Upload Health Report | |
| uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # ratchet:actions/upload-artifact@v4 | |
| with: | |
| name: health-report | |
| path: HEALTH_REPORT.md | |
| - name: Create Issue with Health Report | |
| uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # ratchet:actions/github-script@v8 | |
| with: | |
| script: | | |
| const fs = require('fs'); | |
| // Read the health report | |
| const report = fs.readFileSync('HEALTH_REPORT.md', 'utf8'); | |
| // Check if there's already an open issue | |
| const issues = await github.rest.issues.listForRepo({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| state: 'open', | |
| labels: 'health-report', | |
| per_page: 1 | |
| }); | |
| const issueBody = report + '\n\n---\n*This report is auto-generated weekly. See [health_check.mjs](https://github.com/veggiemonk/awesome-docker/blob/master/tests/health_check.mjs) for details.*'; | |
| if (issues.data.length > 0) { | |
| // Update existing issue | |
| await github.rest.issues.update({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| issue_number: issues.data[0].number, | |
| body: issueBody | |
| }); | |
| console.log(`Updated issue #${issues.data[0].number}`); | |
| } else { | |
| // Create new issue | |
| const issue = await github.rest.issues.create({ | |
| owner: context.repo.owner, | |
| repo: context.repo.repo, | |
| title: '🏥 Weekly Health Report - Repository Maintenance Needed', | |
| body: issueBody, | |
| labels: ['health-report', 'maintenance'] | |
| }); | |
| console.log(`Created issue #${issue.data.number}`); | |
| } |