惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

人人都是产品经理
人人都是产品经理
博客园_首页
IT之家
IT之家
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Vercel News
Vercel News
美团技术团队
D
Docker
WordPress大学
WordPress大学
T
Tailwind CSS Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
The Cloudflare Blog
Y
Y Combinator Blog
F
Fortinet All Blogs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
G
Google Developers Blog
爱范儿
爱范儿
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
MongoDB | Blog
MongoDB | Blog
S
SegmentFault 最新的问题
GbyAI
GbyAI
Hugging Face - Blog
Hugging Face - Blog
Microsoft Azure Blog
Microsoft Azure Blog
A
About on SuperTechFans

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
test(qa): add Slack live transport lane · openclaw/opencl...
vincentkoc · 2026-05-04 · via Recent Commits to openclaw:main

@@ -248,7 +248,7 @@ jobs:

248248

else

249249

echo "- Package Acceptance package spec: prepared release artifact"

250250

fi

251-

echo "- This run will execute cross-OS release validation, install smoke, QA Lab parity, Matrix, and Telegram lanes, and the non-Parallels Docker/live/openwebui coverage from the CI migration plan."

251+

echo "- This run will execute cross-OS release validation, install smoke, QA Lab parity, Matrix, Telegram, and Slack lanes, and the non-Parallels Docker/live/openwebui coverage from the CI migration plan."

252252

} >> "$GITHUB_STEP_SUMMARY"

253253254254

prepare_release_package:

@@ -822,6 +822,99 @@ jobs:

822822

retention-days: 14

823823

if-no-files-found: warn

824824825+

qa_live_slack_release_checks:

826+

name: Run QA Lab live Slack lane

827+

needs: [resolve_target]

828+

if: contains(fromJSON('["all","qa","qa-live"]'), needs.resolve_target.outputs.rerun_group)

829+

runs-on: blacksmith-8vcpu-ubuntu-2404

830+

timeout-minutes: 60

831+

permissions:

832+

contents: read

833+

pull-requests: read

834+

environment: qa-live-shared

835+

env:

836+

OPENCLAW_BUILD_PRIVATE_QA: "1"

837+

OPENCLAW_ENABLE_PRIVATE_QA_CLI: "1"

838+

steps:

839+

- name: Checkout selected ref

840+

uses: actions/checkout@v6

841+

with:

842+

persist-credentials: false

843+

ref: ${{ needs.resolve_target.outputs.revision }}

844+

fetch-depth: 1

845+846+

- name: Setup Node environment

847+

uses: ./.github/actions/setup-node-env

848+

with:

849+

node-version: ${{ env.NODE_VERSION }}

850+

pnpm-version: ${{ env.PNPM_VERSION }}

851+

install-bun: "true"

852+853+

- name: Validate required QA credential env

854+

env:

855+

OPENCLAW_QA_CONVEX_SITE_URL: ${{ secrets.OPENCLAW_QA_CONVEX_SITE_URL }}

856+

OPENCLAW_QA_CONVEX_SECRET_CI: ${{ secrets.OPENCLAW_QA_CONVEX_SECRET_CI }}

857+

shell: bash

858+

run: |

859+

set -euo pipefail

860+861+

require_var() {

862+

local key="$1"

863+

if [[ -z "${!key:-}" ]]; then

864+

echo "Missing required ${key}." >&2

865+

exit 1

866+

fi

867+

}

868+869+

require_var OPENCLAW_QA_CONVEX_SITE_URL

870+

require_var OPENCLAW_QA_CONVEX_SECRET_CI

871+872+

- name: Build private QA runtime

873+

run: pnpm build

874+875+

- name: Run Slack live lane

876+

id: run_lane

877+

shell: bash

878+

env:

879+

OPENCLAW_QA_CONVEX_SITE_URL: ${{ secrets.OPENCLAW_QA_CONVEX_SITE_URL }}

880+

OPENCLAW_QA_CONVEX_SECRET_CI: ${{ secrets.OPENCLAW_QA_CONVEX_SECRET_CI }}

881+

OPENCLAW_QA_REDACT_PUBLIC_METADATA: "1"

882+

OPENCLAW_QA_SLACK_CAPTURE_CONTENT: "1"

883+

run: |

884+

set -euo pipefail

885+886+

output_dir=".artifacts/qa-e2e/slack-live-release-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}"

887+

echo "output_dir=${output_dir}" >> "$GITHUB_OUTPUT"

888+889+

for attempt in 1 2; do

890+

attempt_output_dir="${output_dir}/attempt-${attempt}"

891+

if pnpm openclaw qa slack \

892+

--repo-root . \

893+

--output-dir "${attempt_output_dir}" \

894+

--provider-mode mock-openai \

895+

--model mock-openai/gpt-5.5 \

896+

--alt-model mock-openai/gpt-5.5-alt \

897+

--fast \

898+

--credential-source convex \

899+

--credential-role ci; then

900+

exit 0

901+

fi

902+

if [[ "${attempt}" == "2" ]]; then

903+

exit 1

904+

fi

905+

echo "Slack live lane failed on attempt ${attempt}; retrying once..." >&2

906+

sleep 10

907+

done

908+909+

- name: Upload Slack QA artifacts

910+

if: always()

911+

uses: actions/upload-artifact@v4

912+

with:

913+

name: release-qa-live-slack-${{ needs.resolve_target.outputs.revision }}

914+

path: .artifacts/qa-e2e/

915+

retention-days: 14

916+

if-no-files-found: warn

917+825918

summary:

826919

name: Verify release checks

827920

needs:

@@ -835,6 +928,7 @@ jobs:

835928

- qa_lab_parity_report_release_checks

836929

- qa_live_matrix_release_checks

837930

- qa_live_telegram_release_checks

931+

- qa_live_slack_release_checks

838932

if: always()

839933

runs-on: ubuntu-24.04

840934

permissions: {}

@@ -855,7 +949,8 @@ jobs:

855949

"qa_lab_parity_lane_release_checks=${{ needs.qa_lab_parity_lane_release_checks.result }}" \

856950

"qa_lab_parity_report_release_checks=${{ needs.qa_lab_parity_report_release_checks.result }}" \

857951

"qa_live_matrix_release_checks=${{ needs.qa_live_matrix_release_checks.result }}" \

858-

"qa_live_telegram_release_checks=${{ needs.qa_live_telegram_release_checks.result }}"

952+

"qa_live_telegram_release_checks=${{ needs.qa_live_telegram_release_checks.result }}" \

953+

"qa_live_slack_release_checks=${{ needs.qa_live_slack_release_checks.result }}"

859954

do

860955

name="${item%%=*}"

861956

result="${item#*=}"