Skip to content

Deploy docs to GitHub Pages on release - #169

Merged
EiffL merged 2 commits into
mainfrom
docs-deploy-on-release
Aug 11, 2026
Merged

Deploy docs to GitHub Pages on release#169
EiffL merged 2 commits into
mainfrom
docs-deploy-on-release

Conversation

@EiffL

@EiffL EiffL commented Aug 11, 2026

Copy link
Copy Markdown
Member

Summary

Split out from #168 so the deployment switch can land (and current-main docs can be redeployed) independently of the CLI changes.

  • Release-gated deploys: docs-deploy.yml now triggers on release: published — the same moment as the PyPI publish — instead of every push to main, so docs.lightconeresearch.org never documents behavior pip install lightcone-cli can't deliver yet. workflow_dispatch remains for manual intermediate deploys (typo fixes, clarifications) from the Actions tab.
  • One hosting target: consolidates on GitHub Pages. wrangler.jsonc (added by the Cloudflare bot's autoconfig PR Add Cloudflare Workers configuration #118, not a design decision) is deleted; the Cloudflare Workers deployment retires.
  • check-docs.yml is untouched: docs are still build-validated on every merged PR — they just don't ship until a release or a manual dispatch.

Manual follow-ups (dashboard-side, can't be done from the repo)

  1. Cloudflare: disconnect this repo from Workers Builds and retire the lightcone-cli worker.
  2. Cloudflare DNS: CNAME docs.lightconeresearch.orglightconeresearch.github.io (DNS-only while GitHub validates).
  3. GitHub Pages settings: set the custom domain, then enable Enforce HTTPS.

After merging, run the workflow once manually to deploy current main to Pages.

Test plan

  • Docs build (zensical build) unchanged and green
  • Workflow YAML: triggers are release: published + workflow_dispatch; build/deploy jobs otherwise identical to what ran before

🤖 Generated with Claude Code

https://claude.ai/code/session_016EL5bESx3CqfMNZNPA1KHJ

The docs site now tracks the released CLI: the deploy workflow fires
on release:published (the same trigger as the PyPI publish) instead of
every push to main, and stays manually triggerable via
workflow_dispatch for intermediate fixes. Docs hosting consolidates on
GitHub Pages — the Cloudflare Workers deployment (wrangler.jsonc was
bot autoconfig, not a design decision) is removed, and
docs.lightconeresearch.org moves to a custom domain on Pages.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016EL5bESx3CqfMNZNPA1KHJ
@github-actions

github-actions Bot commented Aug 11, 2026

Copy link
Copy Markdown

❌ Eval Results

Metric Value
Score 0.00
Build complete
Cost $0.00
Turns 0
Duration 0s
lightcone-cli 0.4.1.dev3+g0013cc284 (0013cc28)
Results Download

Graders

No grader results

Full output
      ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/lightcone-cli/lightcone-cli/.venv/lib/python3.12/site-packages/daytona_api_client/exceptions.py", line 148, in from_response
    raise ForbiddenException(http_resp=http_resp, body=body, data=data)
daytona_api_client.exceptions.ForbiddenException: (403)
Reason: Forbidden
HTTP response headers: HTTPHeaderDict({'Content-Type': 'application/json; charset=utf-8', 'Content-Length': '155', 'Connection': 'keep-alive', 'Date': 'Tue, 11 Aug 2026 19:36:15 GMT', 'ETag': 'W/"9b-GgpkUcUKsBh0guUYMtNjGykO3tk"', 'X-Powered-By': 'Express', 'Vary': 'Origin', 'X-Daytona-Api-Version': 'v0.204.0', 'X-RateLimit-Limit-sandbox-create': '600', 'X-RateLimit-Remaining-sandbox-create': '599', 'X-RateLimit-Reset-sandbox-create': '60', 'X-Cache': 'Error from cloudfront', 'Via': '1.1 4d8557db96ea368b1ae853af3db8c604.cloudfront.net (CloudFront)', 'X-Amz-Cf-Pop': 'IAD61-P5', 'X-Amz-Cf-Id': 'zqFKZZuw-zsgHtlD4g8ZRYapQQpv4liTxE4PyM9ldGB1mi5JUXKNyA==', 'X-Frame-Options': 'DENY', 'Referrer-Policy': 'strict-origin-when-cross-origin', 'Content-Security-Policy': "frame-ancestors 'none'", 'X-Content-Type-Options': 'nosniff', 'Strict-Transport-Security': 'max-age=31536000; includeSubDomains; preload'})
HTTP response body: {"path":"/api/sandbox","timestamp":"2026-08-11T19:36:15.052Z","statusCode":403,"error":"Forbidden","message":"Organization is suspended: Depleted credits"}


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/home/runner/work/lightcone-cli/lightcone-cli/src/lightcone/eval/harness.py", line 112, in run_trial
    sandbox.create()
  File "/home/runner/work/lightcone-cli/lightcone-cli/src/lightcone/eval/sandbox.py", line 149, in create
    self._sandbox = self._daytona.create(
                    ^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/lightcone-cli/lightcone-cli/.venv/lib/python3.12/site-packages/daytona_sdk/_utils/errors.py", line 224, in sync_wrapper
    process_n_raise_exception(e)
  File "/home/runner/work/lightcone-cli/lightcone-cli/.venv/lib/python3.12/site-packages/daytona_sdk/_utils/errors.py", line 156, in process_n_raise_exception
    raise create_daytona_error(
daytona_sdk.common.errors.DaytonaForbiddenError: Failed to create sandbox: Organization is suspended: Depleted credits
  snae trial 0: score=0.00 error: Failed to create sandbox: Organization is 
suspended: Deplete

lightcone-cli: 0.4.1.dev3+g0013cc284 (HEAD 0013cc28)
ASTRA: 0.2.11

  Eval Results: Scores  
┏━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Task ┃     Score     ┃
┡━━━━━━╇━━━━━━━━━━━━━━━┩
│ snae │ 0.00 +/- 0.00 │
│      │  pass@k: 0%   │
│      │   1 errors    │
└──────┴───────────────┘

   Eval Results: Cost &   
         Duration         
┏━━━━━━┳━━━━━━━━━━━━━━━━━┓
┃ Task ┃ Cost / Duration ┃
┡━━━━━━╇━━━━━━━━━━━━━━━━━┩
│ snae │      $0.00      │
│      │       0s        │
└──────┴─────────────────┘

Total: 1 trials, $0.00, 0s

Results saved to: eval-results/build-0013cc28/results.json

@EiffL EiffL left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

astra-tools 0.2.14 made `astra init` idempotent, adding required
check_only/as_json parameters to the callback that this release's
`lc init` delegates to — and with no committed lockfile, CI resolves
the latest release on every run, so every PR now fails with a
TypeError. Pin until the next lightcone-cli major, which no longer
calls the callback.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016EL5bESx3CqfMNZNPA1KHJ
@EiffL
EiffL merged commit e4851ae into main Aug 11, 2026
6 of 8 checks passed
@EiffL
EiffL deleted the docs-deploy-on-release branch August 11, 2026 19:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant