Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions .github/workflows/publish-static-artifacts.yml
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,8 @@ jobs:
$FTPS_VERIFY_CERT_LINE
set net:max-retries 2
set net:timeout 30
mirror -R --delete --verbose dist/specgraph-public "$SFTP_REMOTE_ROOT"
lcd dist/specgraph-public
mirror -R --delete --verbose . "$SFTP_REMOTE_ROOT"
bye
EOF
exit 0
Expand All @@ -133,7 +134,8 @@ jobs:
set sftp:connect-program "ssh -a -x -i $HOME/.ssh/specgraph_publish_key -o UserKnownHostsFile=$HOME/.ssh/known_hosts"
set net:max-retries 2
set net:timeout 30
mirror -R --delete --verbose dist/specgraph-public "$SFTP_REMOTE_ROOT"
lcd dist/specgraph-public
mirror -R --delete --verbose . "$SFTP_REMOTE_ROOT"
bye
EOF
else
Expand All @@ -142,7 +144,8 @@ jobs:
set sftp:connect-program "ssh -a -x -o UserKnownHostsFile=$HOME/.ssh/known_hosts"
set net:max-retries 2
set net:timeout 30
mirror -R --delete --verbose dist/specgraph-public "$SFTP_REMOTE_ROOT"
lcd dist/specgraph-public
mirror -R --delete --verbose . "$SFTP_REMOTE_ROOT"
bye
EOF
fi
Expand Down
4 changes: 4 additions & 0 deletions docs/static_artifact_publish.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ The bundle includes:
- `artifact_manifest.json`
- `checksums.sha256`

Deployment mirrors the contents of `dist/specgraph-public/` into
`SFTP_REMOTE_ROOT`. It must not create a nested `specgraph-public/` directory on
the static host.

The source `runs/` directory remains local and unchanged. The publish bundle is
a redacted mirror: local absolute paths such as `/Users/...` are replaced with
`$LOCAL_PATH` in the copied files.
Expand Down
8 changes: 8 additions & 0 deletions tests/test_publish_static_artifacts_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,14 @@ def test_secret_bearing_jobs_do_not_run_on_pr_controlled_workflow() -> None:
assert "ref: ${{ github.event.pull_request.base.sha }}" in connection_workflow


def test_deploy_upload_mirrors_bundle_contents_not_wrapper_directory() -> None:
workflow = _workflow_text()

assert "lcd dist/specgraph-public" in workflow
assert 'mirror -R --delete --verbose . "$SFTP_REMOTE_ROOT"' in workflow
assert 'mirror -R --delete --verbose dist/specgraph-public "$SFTP_REMOTE_ROOT"' not in workflow


def test_workflows_opt_into_node24_actions_runtime() -> None:
workflow_dir = Path(__file__).resolve().parents[1] / ".github" / "workflows"
workflow_paths = sorted(workflow_dir.glob("*.yml"))
Expand Down
Loading