Skip to content

fix(packaging): strip pip direct_url.json from the frozen CLI #447

fix(packaging): strip pip direct_url.json from the frozen CLI

fix(packaging): strip pip direct_url.json from the frozen CLI #447

Workflow file for this run

name: tests
on:
push:
branches: [main]
# Stacked UI changes target their predecessor branch until it merges, so
# every pull request must receive the same required checks as a main PR.
pull_request:
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
pytest:
runs-on: ubuntu-latest
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
# All three gate on the Linux CI runner. Local caveat: on macOS + 3.13
# the psutil-based process-ownership tests (control / runner / supervisor)
# currently fail — a platform quirk in how process identity reads back on
# that combo (create_time / cmdline / cwd). It does not affect Linux CI
# and is tracked as a separate follow-up.
python-version: ["3.11", "3.12", "3.13"]
steps:
- uses: actions/checkout@v7
with:
# Full history: the Gate 1 evidence-binding test verifies git
# provenance of recovery evidence and fails closed on a shallow
# checkout that cannot see the referenced commits.
fetch-depth: 0
- uses: actions/setup-python@v7
with:
python-version: ${{ matrix.python-version }}
- name: Install package
run: |
python -m pip install --upgrade pip
python -m pip install -e . pytest
- name: Run tests
run: pytest -q
macos-app:
name: macOS app and UI snapshots
runs-on: macos-26
timeout-minutes: 20
env:
DEVELOPER_DIR: /Applications/Xcode_26.6.app/Contents/Developer
LANG: en_US.UTF-8
LC_ALL: en_US.UTF-8
TZ: UTC
defaults:
run:
working-directory: apps/agentacct
steps:
- uses: actions/checkout@v7
- name: Test visual snapshot CLI
run: ./Tests/visual-snapshots-cli-tests.sh
- name: Test dashboard reference candidate packaging
run: ./Tests/dashboard-reference-candidate-cli-tests.py
- name: Test dashboard reference candidate intake
run: ./Tests/dashboard-reference-candidate-intake-cli-tests.py
- name: Run Swift tests
run: swift test
- name: Test app bundle identity
run: ./Tests/build-app-identity-tests.sh
- name: Detect canonical visual renderer
id: visual-renderer
run: |
if ./Scripts/visual-snapshots check-environment; then
echo "canonical=true" >> "$GITHUB_OUTPUT"
else
echo "canonical=false" >> "$GITHUB_OUTPUT"
echo "::notice::Reviewed pixel references require the exact canonical renderer;" \
"deterministic render tests and the review artifact still run on this hosted image."
fi
- name: Verify UI visual references
id: visual_references
if: steps.visual-renderer.outputs.canonical == 'true'
env:
AGENTACCT_SNAPSHOT_ARTIFACT_DIR: ${{ runner.temp }}/agentacct-ui-diff
run: ./Scripts/visual-snapshots verify
- name: Upload UI visual failures
if: failure()
uses: actions/upload-artifact@v7
with:
name: ui-diff-${{ github.sha }}
path: ${{ runner.temp }}/agentacct-ui-diff/*.png
if-no-files-found: ignore
retention-days: 14
- name: Build release executable
id: review_build
if: ${{ !cancelled() }}
run: swift build -c release
- name: Render UI review matrix
id: review_render
if: ${{ !cancelled() && steps.review_build.outcome == 'success' }}
run: |
.build/release/agentacct \
--snapshot-dashboard-fixture \
Tests/agentacctTests/Fixtures/dashboard.json \
"$RUNNER_TEMP/agentacct-ui-review"
.build/release/agentacct \
--snapshot-usage-fixture \
Tests/agentacctTests/Fixtures/dashboard.json \
"$RUNNER_TEMP/agentacct-ui-review"
.build/release/agentacct \
--snapshot-menu-fixture \
Tests/agentacctTests/Fixtures/dashboard.json \
"$RUNNER_TEMP/agentacct-ui-review"
.build/release/agentacct \
--snapshot-work-fixture \
Tests/agentacctTests/Fixtures/dashboard.json \
"$RUNNER_TEMP/agentacct-ui-review"
- name: Upload UI review matrix
if: ${{ !cancelled() && steps.review_render.outcome == 'success' }}
uses: actions/upload-artifact@v7
with:
name: ui-review-${{ github.sha }}
path: ${{ runner.temp }}/agentacct-ui-review/*.png
if-no-files-found: error
retention-days: 14
- name: Upload canonical dashboard baseline candidates
if: ${{ !cancelled() && steps.visual-renderer.outputs.canonical == 'true' && steps.visual_references.outcome == 'failure' && steps.review_render.outcome == 'success' }}
uses: actions/upload-artifact@v7
with:
name: dashboard-baseline-candidate-macos-26.6-25G72-xcode-26.6-17F113-arm64-2x-${{ github.sha }}
path: ${{ runner.temp }}/agentacct-ui-review/dashboard-*.png
if-no-files-found: error
retention-days: 14