Skip to content

Test PR 2

Test PR 2 #45

Workflow file for this run

name: Manage leaderboard
on:
issue_comment:
types: [created]
branches:
- main
jobs:
add-entry:
if: ${{ github.event.issue.pull_request && startsWith(github.event.comment.body, '/add-to-leaderboard') }}
runs-on: ubuntu-latest
steps:
- name: Obtain PR branch
id: get-branch
run: echo "branch=$(gh pr view $PR_NO --repo $REPO --json headRefName --jq '.headRefName')" >> $GITHUB_OUTPUT
env:
REPO: ${{ github.repository }}
PR_NO: ${{ github.event.issue.number }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout PR branch
uses: actions/checkout@v2
with:
ref: ${{ steps.get-branch.outputs.branch }}
- name: Extract arguments from comment
id: extract_args
run: |
echo "Extracting arguments..."
comment="${{ github.event.comment.body }}"
python_version=$(echo "$comment" | grep -oP '(?<=--python )\S+')
appworld_version=$(echo "$comment" | grep -oP '(?<=--appworld )\S+')
experiment_prefixes=$(echo "$comment" | cut -d' ' -f6-)
echo "Python version: $python_version"
echo "Appworld version: $appworld_version"
echo "Experiment prefixes: $experiment_prefixes"
echo "python_version=$python_version" >> $GITHUB_ENV
echo "appworld_version=$appworld_version" >> $GITHUB_ENV
echo "experiment_prefixes=$experiment_prefixes" >> $GITHUB_ENV
- uses: astral-sh/setup-uv@v3
with:
version: "0.4.4"
- name: Set up Python
run: uv python install ${{ env.python_version }}
- name: Install venv
run: uv venv
- name: Install dependencies
run: |
uv pip install appworld==${{ env.appworld_version }}
uv run appworld install
- name: Download appworld data
run: uv run appworld download data
- name: Fetch main branch
run: git fetch origin main
- name: Reset leaderboard json file
run: curl -L -o experiments/outputs/_leaderboard.json https://github.com/stonybrooknlp/appworld-leaderboard/raw/main/experiments/outputs/_leaderboard.json
- name: Add leaderboard entry
run: PYTHONPATH=$PYTHONPATH:. uv run scripts/add_to_leaderboard.py --pr-branch ${{ steps.get-branch.outputs.branch }} ${{ env.experiment_prefixes }}
- name: Comment on PR
if: ${{ success() }}
uses: actions/github-script@v6
with:
script: |
const fs = require('fs');
const content = '```json\n' + fs.readFileSync('.temp/added_leaderboard_data.json', 'utf8') + '\n```';
const commentBody = `### Added to leaderboard:\n${content}`;
const issue_number = context.issue.number;
await github.rest.issues.createComment({
...context.repo,
issue_number: issue_number,
body: commentBody,
});
- name: Commit and push
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add -f experiments/outputs/_leaderboard.json
git commit -m "add leaderboard entry" || true
git push origin ${{ steps.get-branch.outputs.branch }} || true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}