Skip to content

UpstreamTracker

UpstreamTracker #69

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
WIKILOGS="$(git log --since="7 days ago" --reverse --pretty=format:'{"commit":"%H","author":"%aN <%aE>","date":"%ad","message":"%f"}')"
WIKILOGS="[${WIKILOGS//$'\n'/,}]" # proper JSON formatting
WIKIRANGE="$(echo $WIKILOGS | jq -r '"\(.[0].commit)^..\(.[-1].commit)"')"
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";
echo "[${{ steps.updates.outputs.wikirange }}](https://github.com/anza-xyz/agave/wiki/_compare/${{steps.updates.outputs.wikirange }})";
echo "\`\`\`diff";
# shellcheck disable=SC1003
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