TradingAgents/.github/workflows/daily-codex-analysis.yml
Workflow config file is invalid. Please check your config file: yaml: line 64: could not find expected ':'

124 lines
3.7 KiB
YAML

name: Daily Codex Analysis
on:
schedule:
# 00:13 UTC = 09:13 Asia/Seoul
- cron: "13 0 * * *"
workflow_dispatch:
inputs:
tickers:
description: "Optional comma-separated tickers override"
required: false
type: string
trade_date:
description: "Optional YYYY-MM-DD trade date override"
required: false
type: string
site_only:
description: "Only rebuild GitHub Pages from archived runs"
required: false
type: boolean
default: false
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: daily-codex-analysis
cancel-in-progress: false
jobs:
analyze:
runs-on: [self-hosted, Windows]
timeout-minutes: 240
env:
PYTHONUTF8: "1"
PIP_DISABLE_PIP_VERSION_CHECK: "1"
TRADINGAGENTS_SITE_DIR: ${{ github.workspace }}\site
TRADINGAGENTS_ARCHIVE_DIR: ${{ vars.TRADINGAGENTS_ARCHIVE_DIR }}
steps:
- name: Check out repository
uses: actions/checkout@v4
- name: Configure GitHub Pages
uses: actions/configure-pages@v5
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.13"
- name: Install TradingAgents
shell: pwsh
run: |
python -m pip install --upgrade pip
python -m pip install -e .
- name: Verify Codex login and model availability
shell: pwsh
run: |
$workspaceDir = Join-Path $env:GITHUB_WORKSPACE ".codex-preflight"
@"
from tradingagents.llm_clients.codex_preflight import run_codex_preflight
result = run_codex_preflight(
codex_binary=None,
model="gpt-5.4",
request_timeout=30.0,
workspace_dir=r"$workspaceDir",
cleanup_threads=True,
)
print("Codex account:", result.account)
print("First available models:", ", ".join(result.models[:8]))
"@ | python -
- name: Run scheduled analysis and build site
shell: pwsh
run: |
$configPath = "config/scheduled_analysis.toml"
if (-not (Test-Path $configPath)) {
throw "Missing config/scheduled_analysis.toml. Copy config/scheduled_analysis.example.toml, set your real tickers, and commit the file before enabling the schedule."
}
$args = @("-m", "tradingagents.scheduled", "--config", $configPath, "--site-dir", $env:TRADINGAGENTS_SITE_DIR, "--label", "github-actions")
if (-not [string]::IsNullOrWhiteSpace($env:TRADINGAGENTS_ARCHIVE_DIR)) {
$args += @("--archive-dir", $env:TRADINGAGENTS_ARCHIVE_DIR)
} else {
Write-Warning "TRADINGAGENTS_ARCHIVE_DIR is not set. Run history will live under the repository checkout unless the config overrides it."
}
$manualTickers = "${{ github.event.inputs.tickers }}"
if (-not [string]::IsNullOrWhiteSpace($manualTickers)) {
$args += @("--tickers", $manualTickers)
}
$manualTradeDate = "${{ github.event.inputs.trade_date }}"
if (-not [string]::IsNullOrWhiteSpace($manualTradeDate)) {
$args += @("--trade-date", $manualTradeDate)
}
$siteOnly = "${{ github.event.inputs.site_only }}"
if ($siteOnly -eq "true") {
$args += "--site-only"
}
python @args
- name: Upload GitHub Pages artifact
uses: actions/upload-pages-artifact@v3
with:
path: site
deploy:
needs: analyze
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4