Skip to content

UpstreamTracker

UpstreamTracker #57

name: UpstreamTracker
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * 1' # check monday at midnight UTC
jobs:
Solana-Update-Checker:
runs-on: ubuntu-latest
steps:
- name: Check For Updates In Past Week
id: updates
run: |
# new PRs
OPEN=$(curl https://api.github.com/repos/solana-foundation/solana-improvement-documents/pulls\?state=open\&per_page=100 | jq --arg t "$(date -d '7 days ago' +%s)" -r '.[] | select (.created_at | . == null or fromdateiso8601 > ($t|tonumber)) | "- \(.html_url)"')
# macos
# OPEN=$(curl https://api.github.com/repos/solana-foundation/solana-improvement-documents/pulls\?state\=open\&per_page\=100 | jq --arg t "$(date -v-7d +%s)" -r '.[] | select (.created_at | . == null or fromdateiso8601 > ($t|tonumber)) | "- \(.html_url)"')
# closed PRs
CLOSED=$(curl https://api.github.com/repos/solana-foundation/solana-improvement-documents/pulls\?state=closed\&per_page=100 | jq --arg t "$(date -d '7 days ago' +%s)" -r '.[] | select (.closed_at | . == null or fromdateiso8601 > ($t|tonumber)) | "- \(.html_url)"')
# macos
# CLOSED=$(curl https://api.github.com/repos/solana-foundation/solana-improvement-documents/pulls\?state\=closed\&per_page\=100 | jq --arg t "$(date -v-7d +%s)" -r '.[] | select (.created_at | . == null or fromdateiso8601 > ($t|tonumber)) | "- \(.html_url)"')
# updates to anza-xyz/agave wiki (contains feature gate updates + release schedules)
git clone https://github.com/anza-xyz/agave.wiki.git
cd agave.wiki
WIKIHASHES=$(git log --since="7 days ago" --pretty=format:"%h")
WIKIRANGE="$(echo $WIKIHASHES | tail -1)^..$(echo $WIKIHASHES | head -1)"
echo "$(tail -1 $WIKIHASHES)"
echo "$(head -1 $WIKIHASHES)"
WIKI=$(git diff $WIKIRANGE)
WIKI=${WIKI//$'\n'/\\n} # preserve new line
printf -v WIKI "%q " "$WIKI" # escape chars that may cause issues
echo "open<<EOF" >> $GITHUB_OUTPUT
echo "$OPEN" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "closed<<EOF" >> $GITHUB_OUTPUT
echo "$CLOSED" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "wiki<<EOF" >> $GITHUB_OUTPUT
echo "$WIKI" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "wikirange=$WIKIRANGE" >> $GITHUB_OUTPUT
- uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5
if: steps.updates.outputs.open || steps.updates.outputs.closed || steps.updates.outputs.wiki
- name: Open Issue
if: steps.updates.outputs.open || steps.updates.outputs.closed || steps.updates.outputs.wiki
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# TODO: update assignee to teams when GH supports it
run: |
{
echo "## SIMD";
echo "### Opened";
echo "${{ steps.updates.outputs.open }}";
echo "### Closed";
echo "${{ steps.updates.outputs.closed }}";
echo "## Agave Wiki \[ ${{ steps.updates.outputs.wikirange }} \](https://github.com/anza-xyz/agave/wiki/_compare/${{steps.updates.outputs.wikirange }})";
echo "\`\`\`diff";
echo -e "${{ steps.updates.outputs.wiki }}" | tr -d '\'; # unescape + remove remaining backticks
echo "\`\`\`";
} >> output.md
gh issue create -a aalu1418 -t "Upstream Updates - $(date)" -l "[auto] Upstream Updates" -F output.md