GitHub Classroom Python Grader is a plugin for GitHub Classroom's Autograder. Seamlessly integrate your CS class with GitHub using this action to facilitate the grading process.
- Automatic Grading: Evaluate student code submissions and provide immediate feedback.
 - Customizable Test Setup: Define pre-test setup commands and specific testing commands.
 - Command Execution: Run any command and determine the success based on the exit code.
 - Timeout Control: Limit the runtime of tests to prevent excessive resource usage, with a maximum duration of 6 hours.
 - Scoring System: Assign a maximum score for tests, awarding points upon successful test completion.
 
| Input Name | Description | Required | 
|---|---|---|
timeout | 
Duration (in minutes) before the test is terminated. Defaults to 10 minutes with a maximum limit of 6 hours. | Yes | 
max-score | 
Points to be awarded if the test passes. | No | 
setup-command | 
Command to execute prior to the test, typically for environment setup or dependency installation. | No | 
| Output Name | Description | 
|---|---|
result | 
Outputs the result of the grader, indicating the success or failure of the test. | 
- Add the GitHub Classroom Python Grader action to your workflow.
 
name: Autograding Tests
on:
  push
jobs:
  run-tests:
    runs-on: ubuntu-latest
    steps:
    - name: Checkout code
      uses: actions/checkout@v4
    - name: Python test
      id: python-test
      uses: classroom-resources/autograding-python-grader@v1
      with:
        timeout: '15'
        max-score: '100'
        setup-command: 'pip install -r requirements.txt'
    - name: Autograding Reporter
      uses: ...