diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2ea8c02..9810fa8 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,8 +6,6 @@ on: pull_request: branches: [ main, 'release/**' ] workflow_dispatch: - schedule: - - cron: '17 3 * * *' permissions: contents: read @@ -56,7 +54,7 @@ jobs: extended-linux-runtime: name: Extended Linux runtime - if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'push' + if: github.event_name == 'workflow_dispatch' || github.event_name == 'push' runs-on: ubuntu-24.04 steps: @@ -131,7 +129,7 @@ jobs: portable-container-builds: name: Portable build (${{ matrix.name }}) - if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'push' + if: github.event_name == 'workflow_dispatch' || github.event_name == 'push' runs-on: ubuntu-24.04 strategy: fail-fast: false @@ -166,7 +164,7 @@ jobs: package-recipe-gate: name: Package recipe gate - if: github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || github.event_name == 'push' + if: github.event_name == 'workflow_dispatch' || github.event_name == 'push' runs-on: ubuntu-24.04 steps: diff --git a/docs/CICD.md b/docs/CICD.md index 2703381..cc3d9f5 100644 --- a/docs/CICD.md +++ b/docs/CICD.md @@ -1,7 +1,7 @@ # CI/CD and Release Governance TNT is a C SSH terminal chat server. The CI/CD system is designed for a public -open-source project: fast feedback on pull requests, broader scheduled +open-source project: fast feedback on pull requests, broader push and manual validation across target environments, reproducible release artifacts, and a manual production deployment boundary. @@ -31,12 +31,11 @@ Purpose: before merge. - Avoid slow soak, valgrind, and container matrix jobs on every PR. -### Extended and Nightly Validation +### Extended Validation Workflow: `.github/workflows/ci.yml` -Runs on `main` or `release/**` pushes, manual dispatch, and the nightly -schedule: +Runs on `main` or `release/**` pushes and manual dispatch: - `extended-linux-runtime` - Runs `RUN_INTEGRATION=1 RUN_SOAK=1 RUN_SLOW_CLIENT=1 make release-check`. diff --git a/src/input.c b/src/input.c index 49b8bb4..a19811b 100644 --- a/src/input.c +++ b/src/input.c @@ -822,9 +822,11 @@ void input_run_session(client_t *client) { if (client->exec_command[0] != '\0' || client->exec_command_too_long) { int exit_status = exec_dispatch(client); ssh_channel_request_send_exit_status(client->channel, exit_status); + ssh_blocking_flush(client->session, 1000); ssh_channel_send_eof(client->channel); ssh_blocking_flush(client->session, 1000); ssh_channel_close(client->channel); + ssh_blocking_flush(client->session, 1000); goto cleanup; }