Check New Versions #571
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: Check New Versions | |
| on: | |
| schedule: | |
| - cron: '0 */1 * * *' # every hour | |
| workflow_dispatch: {} | |
| concurrency: | |
| group: check-versions | |
| cancel-in-progress: true | |
| permissions: | |
| contents: read | |
| issues: write | |
| actions: write | |
| jobs: | |
| check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Check for new OpenClaw versions | |
| env: | |
| GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| run: | | |
| # Get versions >= 2026.4.23 from npm (cutoff) | |
| VERSIONS=$(npm view openclaw versions --json | node -e " | |
| const v = require('fs').readFileSync('/dev/stdin','utf8'); | |
| const cutoff = [2026, 4, 23]; | |
| const versions = JSON.parse(v) | |
| .filter(x => !x.includes('beta') && !x.includes('alpha') && !x.includes('rc')) | |
| .filter(x => { | |
| const p = x.split('.').map(Number); | |
| return p[0] > cutoff[0] || (p[0] === cutoff[0] && (p[1] > cutoff[1] || (p[1] === cutoff[1] && p[2] >= cutoff[2]))); | |
| }); | |
| versions.forEach(x => console.log(x)); | |
| ") | |
| # Get existing version issues | |
| EXISTING=$(gh issue list --repo exisz/IsItStable --label version,pkg:openclaw --state all --limit 500 --json title | node -e " | |
| const d = require('fs').readFileSync('/dev/stdin','utf8'); | |
| JSON.parse(d).forEach(i => { | |
| const m = i.title.match(/\[v([^\]]+)\]/); | |
| if (m) console.log(m[1]); | |
| }); | |
| ") | |
| # Create issues for new versions | |
| CREATED=0 | |
| for V in $VERSIONS; do | |
| if ! echo "$EXISTING" | grep -qx "$V"; then | |
| echo "New version found: $V" | |
| gh issue create --repo exisz/IsItStable \ | |
| --title "[v${V}] [OpenClaw] Is it stable?" \ | |
| --label version,pkg:openclaw \ | |
| --body "## Stability Score: pending ⏳ | |
| Awaiting evidence analysis. This version was auto-detected from npm. | |
| ## Evidence | |
| _No analysis yet. The operator will review GitHub issues and update the factual score._ | |
| ## Stats | |
| - npm downloads: pending | |
| - GitHub issues mentioning this version: pending | |
| --- | |
| _Auto-created by IsItStable version checker._" | |
| CREATED=$((CREATED + 1)) | |
| fi | |
| done | |
| # Trigger sync if new versions were created | |
| if [ $CREATED -gt 0 ]; then | |
| echo "Triggering sync workflow ($CREATED new versions)..." | |
| gh workflow run sync.yml --repo exisz/IsItStable | |
| fi |