feat(slack): umbrella Slack UX upgrade — buttons, status, reactions, … #199
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: E2E Smoke Tests | |
| on: | |
| push: | |
| branches: [main, dev] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| # ─── Tier 1: Deterministic (no API keys needed) ──────────────────────── | |
| e2e-deterministic: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: 1.3.11 | |
| - name: Setup uv (for Python script nodes) | |
| uses: astral-sh/setup-uv@v4 | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Run deterministic workflow | |
| run: bun run cli workflow run e2e-deterministic --no-worktree "smoke test" | |
| # ─── Tier 2a: Claude provider ────────────────────────────────────────── | |
| e2e-claude: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: 1.3.11 | |
| - name: Install Claude Code CLI | |
| run: | | |
| curl -fsSL https://claude.ai/install.sh | bash | |
| echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Run Claude smoke test | |
| env: | |
| ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} | |
| run: | | |
| # YAML `env:` values don't expand `~`, so set CLAUDE_BIN_PATH in the | |
| # shell where $HOME resolves. The native installer drops the binary | |
| # at $HOME/.local/bin/claude. | |
| export CLAUDE_BIN_PATH="$HOME/.local/bin/claude" | |
| bun run cli workflow run e2e-claude-smoke --no-worktree "smoke test" | |
| # ─── Tier 2b: Codex provider ─────────────────────────────────────────── | |
| e2e-codex: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: 1.3.11 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Install Codex CLI | |
| run: npm install -g @openai/codex | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Run Codex smoke test | |
| env: | |
| OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
| CODEX_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
| run: bun run cli workflow run e2e-codex-smoke --no-worktree "smoke test" | |
| # ─── Tier 3: Mixed providers ─────────────────────────────────────────── | |
| e2e-mixed: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 5 | |
| needs: [e2e-claude, e2e-codex] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup Bun | |
| uses: oven-sh/setup-bun@v2 | |
| with: | |
| bun-version: 1.3.11 | |
| - name: Setup Node.js | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: 22 | |
| - name: Install Claude Code CLI | |
| run: | | |
| curl -fsSL https://claude.ai/install.sh | bash | |
| echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: Install Codex CLI | |
| run: npm install -g @openai/codex | |
| - name: Install dependencies | |
| run: bun install --frozen-lockfile | |
| - name: Run mixed providers test | |
| env: | |
| ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} | |
| OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
| CODEX_API_KEY: ${{ secrets.OPENAI_API_KEY }} | |
| run: | | |
| # YAML `env:` values don't expand `~`, so set CLAUDE_BIN_PATH in the | |
| # shell where $HOME resolves. The native installer drops the binary | |
| # at $HOME/.local/bin/claude. | |
| export CLAUDE_BIN_PATH="$HOME/.local/bin/claude" | |
| bun run cli workflow run e2e-mixed-providers --no-worktree "smoke test" |