Skip to content

integration: set the exec bit in the index, and say why it needs saying #17

integration: set the exec bit in the index, and say why it needs saying

integration: set the exec bit in the index, and say why it needs saying #17

Workflow file for this run

name: CI
# Test CI for github.itap.purdue.edu (Purdue's GitHub Enterprise Server).
#
# Enterprise Server has NO GitHub-hosted runners (no ubuntu-latest /
# windows-latest), so this job targets a SELF-HOSTED runner you register under
# repo -> Settings -> Actions -> Runners. Until a runner is online, runs sit in
# "Queued" — that is expected, not an error.
#
# Written for the WINDOWS self-hosted runner (labels self-hosted + Windows). It
# builds a throwaway venv so `pip install` writes into the workspace, NOT the
# system Python under C:\Program Files (which the runner's service account
# cannot write to — that would be an "access denied"). The suite is pure logic
# (no Tesseract, no Ollama), so it stays fast.
#
# To add Linux coverage later: register a second (Linux) runner and add a matrix
# over runner labels, switching the venv interpreter path (Scripts -> bin).
on:
push:
branches: [main]
pull_request:
branches: [main]
# Cancel superseded runs on the same ref so a rapid series of pushes doesn't
# queue redundant jobs.
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
test:
name: tests (self-hosted Windows)
runs-on: [self-hosted, Windows]
steps:
- uses: actions/checkout@v4
- name: Create venv and install dependencies
run: |
python --version
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -r requirements.txt
- name: Run test suite
run: .\.venv\Scripts\python.exe -m unittest discover -s tests -v