[release-21.0] CI: deflakes, fork runner fallback, MySQL install, codecov gating#20196
[release-21.0] CI: deflakes, fork runner fallback, MySQL install, codecov gating#20196arthurschreiber wants to merge 13 commits into
Conversation
Forks don't have access to the `gh-hosted-runners-16cores-1-24.04` runner pool, so workflows that hardcoded it would never schedule. Gate the runner selection on `github.repository` so forks fall back to `ubuntu-24.04` automatically. The three e2e templates are updated and regenerated; the hand-maintained workflows (codecov, unit_race*, upgrade_downgrade_*, local/region examples) get the same expression inline. `docker_build_images.yml` is left as-is because both of its jobs already gate on `if: github.repository == 'vitessio/vitess'`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
Signed-off-by: Matt Lord <mattalord@gmail.com> (cherry picked from commit 9290e31)
When the server's `VerifyPeerCertificate` returns "Certificate revoked", Go's TLS sends a `bad_certificate` alert and then closes. Whether the client reads the alert or the TCP RST first depends on kernel TCP flush timing — so the test would sometimes see `remote error: tls: bad certificate` and sometimes `connection reset by peer` / `broken pipe`. Both outcomes mean the revoked certificate was rejected, which is what the test cares about. Accept any of the three error strings. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
…itessio#19199) Signed-off-by: Matt Lord <mattalord@gmail.com> (cherry picked from commit 3839bd4)
After SIGHUPing the static auth server to force a config reload, the
test slept a fixed 100ms (or 20ms) and then asserted the new entries
were live. On a slow CI runner the signal handler hasn't finished
processing yet, and the test fails with:
Expected nil, but got: []*mysql.AuthServerStaticEntry{...}
Match the fix from PR vitessio#19388: replace the fixed sleep with
require.EventuallyWithT polling, with a generous 30s deadline so
slower runners still pass.
Backport of the go/mysql/auth_server_static_test.go slice of vitessio#19388
(the rest of that PR is unrelated zkctl/zk2topo/tabletserver work
that doesn't apply to this branch).
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
TestTrackerNoLock pushes 500,000 messages onto a channel and asserts each send completes within 10ms. Under CI load that's tight enough to flake regularly, surfacing as: tracker_test.go:199: failed to send health check to tracker Match the fix from PR vitessio#18317: bump the per-send timeout to 50ms. Backport of the go/vt/vtgate/schema/tracker_test.go slice of vitessio#18317 (the materializer_test.go slice is for an unrelated test). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
The `percona-release setup ps80` shortcut no longer enables a repo that ships `percona-xtrabackup-80`, so the xb_backup / xb_recovery / backup_pitr_xtrabackup jobs were failing with: E: Unable to locate package percona-xtrabackup-80 Match what release-23.0 and release-24.0 do: set up the pdps8.0 distribution repo and pxb-80 (XtraBackup 8.0) repo, and re-enable the ps-80 release repo for percona-server packages. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
Backport the relevant pieces of the newer branches'
.github/actions/setup-mysql composite action into the existing
release-21.0 templates so the ubuntu-24.04 runner image's
pre-installed MySQL doesn't break our install:
- Uninstall the MySQL pre-installed on the ubuntu-24.04 runner
image before installing our own, so the package install
doesn't conflict.
- Recreate an empty apparmor profile before disabling /
reloading it (the profile is removed along with the
pre-installed MySQL packages).
- Pull libaio1 / libtinfo5 from archive.ubuntu.com instead of
mirrors.kernel.org, matching the newer composite action.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
The previous deflake commit (e3cd779) ported the EventuallyWithT callback verbatim from upstream's PR vitessio#19388, which uses `require.X(c, ...)`. That works on upstream's testify v1.11+, but this branch is pinned to testify v1.9, where `CollectT.FailNow` is implemented as `panic("Assertion failed")` and `EventuallyWithT` doesn't recover from it — so the first failed poll crashes the goroutine. The job log showed exactly that: panic: Assertion failed testify/assert.(*CollectT).FailNow ... EventuallyWithT.func1 ... FAIL vitess.io/vitess/go/mysql Replace `require.X(c, ...)` with `assert.X(c, ...)` (which just flags the CollectT instead of panicking) and guard the `entries[0]` indexing on `assert.NotEmpty`, otherwise a `nil[0]` slice access escapes the same way. Hoisted the polling loop into a `waitForReload` helper since both hupTest and hupTestWithRotation now use the same body. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Arthur Schreiber <arthur@planetscale.com> (cherry picked from commit 248182c)
The Upload step in codecov.yml has `fail_ci_if_error: true`, so when the workflow runs on a fork (or anywhere else without `secrets.CODECOV_TOKEN`) the upload returns: Token required - not valid tokenless upload ==> Failed to create-commit …and the whole job goes red even though the test suite passed. Gate the entire job on `secrets.CODECOV_TOKEN != ''` so forks skip both the test run and the upload — running unit tests just to throw away the coverage report is wasted CI time. Anyone who actually wants the coverage can opt in by configuring the secret on their fork. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
The previous commit (51bb5c8) gated the Code Coverage job on `secrets.CODECOV_TOKEN != ''`. That breaks if upstream relies on tokenless / OIDC upload — they wouldn't have the secret set, and the job would skip on `vitessio/vitess` too. Switch to the same pattern we already use for runner selection: `if: github.repository == 'vitessio/vitess'`. Coverage runs on upstream unconditionally, and forks skip without burning ~16 minutes of unit tests. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Arthur Schreiber <arthur@planetscale.com> (cherry picked from commit bb3b340)
The two query_serving_queries_2 workflows still hardcoded `gh-hosted-runners-16cores-1-24.04`, which forks can't schedule on. Apply the same `github.repository`-gated expression used elsewhere so they fall back to `ubuntu-24.04` outside vitessio/vitess. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
The vitessio/vitess action policy requires every `uses:` to reference a full 40-char commit SHA, but a handful of workflows on release-21.0 still pin by major tag (or by `@master`). Any PR that touches CI on this branch fails at the `Prepare all required actions` step with: The action <name>@<ref> is not allowed in vitessio/vitess because all actions must be pinned to a full-length commit SHA. Pin the remaining references, keeping the major version unchanged: actions/checkout@v4 → 11bd7190 # v4.2.2 actions/setup-node@v4 → 1e60f620 # v4.0.3 codecov/codecov-action@v4 → b9fd7d16 # v4.6.0 fossa-contrib/fossa-action@v3 → 3d2ef181 # v3.0.1 Gamesight/slack-workflow-status@master → 68bf00d0 # v1.3.0 github/codeql-action/init@v3 → 4bdb89f4 # v3.28.18 github/codeql-action/analyze@v3 → 4bdb89f4 # v3.28.18 peter-evans/create-pull-request@v7 → 22a90890 # v7.0.11 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Signed-off-by: Arthur Schreiber <arthur@planetscale.com>
There was a problem hiding this comment.
Pull request overview
This PR restores green CI on the EOL release-21.0 branch (especially for forks) by adding runner fallbacks, fixing MySQL/Percona install steps on Ubuntu 24.04 images, deflaking a handful of tests, gating Codecov appropriately, and SHA-pinning remaining GitHub Actions uses.
Changes:
- Add fork-safe runner selection (fallback to
ubuntu-24.04when custom runners aren’t available) and gate Codecov tovitessio/vitess. - Fix CI MySQL/Percona install conflicts on Ubuntu 24.04 (uninstall preinstalled MySQL, recreate/disable AppArmor profile, update Percona repo setup).
- Deflake several tests and SHA-pin remaining Actions references.
Reviewed changes
Copilot reviewed 99 out of 99 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| test/templates/unit_test.tpl | Switches MySQL 5.7 dependency install steps (incl. archive package fetches). |
| test/templates/cluster_vitess_tester.tpl | Adds Ubuntu 24.04 MySQL uninstall/AppArmor handling before installing required MySQL. |
| test/templates/cluster_endtoend_test.tpl | Adds fork runner fallback + Ubuntu 24.04 MySQL uninstall + Percona repo setup adjustments. |
| test/templates/cluster_endtoend_test_mysql57.tpl | Updates MySQL 5.7 end-to-end dependency install steps for Ubuntu 24.04 runner images. |
| test/templates/cluster_endtoend_test_docker.tpl | Adds fork runner fallback for 16-core runner selection. |
| go/vt/vtgate/schema/tracker_test.go | Deflakes TestTrackerNoLock by increasing channel send timeout. |
| go/test/endtoend/backup/vtbackup/backup_only_test.go | Makes redo-log verification resilient to MySQL error-code changes by matching log message. |
| go/mysql/server_test.go | Deflakes server stats test via Eventually; relaxes revoked-cert assertion to tolerate transport-level errors. |
| go/mysql/auth_server_static_test.go | Deflakes HUP reload tests by polling via EventuallyWithT and avoiding require panics in callbacks. |
| .github/workflows/vtadmin_web_unit_tests.yml | SHA-pins actions/setup-node usage. |
| .github/workflows/vtadmin_web_lint.yml | SHA-pins actions/setup-node usage. |
| .github/workflows/vtadmin_web_build.yml | SHA-pins actions/setup-node usage. |
| .github/workflows/vitess_tester_vtgate.yml | Adds Ubuntu 24.04 MySQL uninstall/AppArmor handling before installing required MySQL. |
| .github/workflows/upgrade_downgrade_test_semi_sync.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/upgrade_downgrade_test_reparent_old_vttablet.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/upgrade_downgrade_test_reparent_old_vtctl.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/upgrade_downgrade_test_reparent_new_vttablet.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/upgrade_downgrade_test_reparent_new_vtctl.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/upgrade_downgrade_test_query_serving_schema.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/upgrade_downgrade_test_query_serving_schema_next_release.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/upgrade_downgrade_test_query_serving_queries.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/upgrade_downgrade_test_query_serving_queries_next_release.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/upgrade_downgrade_test_query_serving_queries_2.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/upgrade_downgrade_test_query_serving_queries_2_next_release.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/upgrade_downgrade_test_onlineddl_flow.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/upgrade_downgrade_test_backups_manual.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/upgrade_downgrade_test_backups_manual_next_release.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/upgrade_downgrade_test_backups_e2e.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/upgrade_downgrade_test_backups_e2e_next_release.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/update_golang_version.yml | SHA-pins peter-evans/create-pull-request. |
| .github/workflows/update_golang_dependencies.yml | SHA-pins peter-evans/create-pull-request. |
| .github/workflows/unit_test_mysql57.yml | Updates MySQL 5.7 workflow dependency install steps (incl. archive package fetches). |
| .github/workflows/unit_test_evalengine_mysql57.yml | Updates MySQL 5.7 evalengine workflow dependency install steps (incl. archive package fetches). |
| .github/workflows/unit_race.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/unit_race_evalengine.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/static_checks_etc.yml | SHA-pins FOSSA action and other uses: entries in static checks workflow. |
| .github/workflows/scorecards.yml | SHA-pins actions/checkout. |
| .github/workflows/region_example.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/local_example.yml | Adds fork-safe runner fallback for custom runner. |
| .github/workflows/codeql_analysis.yml | SHA-pins CodeQL actions and Slack workflow action. |
| .github/workflows/codecov.yml | Gates coverage to vitessio/vitess and SHA-pins Codecov action. |
| .github/workflows/cluster_endtoend_xb_recovery.yml | Fixes Percona setup + Ubuntu 24.04 MySQL uninstall/AppArmor handling. |
| .github/workflows/cluster_endtoend_xb_backup.yml | Fixes Percona setup + Ubuntu 24.04 MySQL uninstall/AppArmor handling. |
| .github/workflows/cluster_endtoend_vttablet_prscomplex.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtorc.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_vschema.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_vindex_heavy.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_unsharded.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_transaction.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_topo.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_topo_etcd.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_topo_consul.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_tablet_healthcheck_cache.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_schema.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_schema_tracker.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_reservedconn.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_readafterwrite.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_queries.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_partial_keyspace.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_godriver.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_general_heavy.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_gen4.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_foreignkey_stress.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtgate_concurrentdml.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtctlbackup_sharded_clustertest_heavy.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vtbackup.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vstream.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vreplication_v2.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vreplication_partial_movetables_and_materialize.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vreplication_multi_tenant.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vreplication_migrate_vdiff2_convert_tz.yml | Adds fork-safe runner fallback + fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling. |
| .github/workflows/cluster_endtoend_vreplication_mariadb_to_mysql.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vreplication_foreign_key_stress.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vreplication_copy_parallel.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vreplication_cellalias.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_vreplication_basic.yml | Adds fork-safe runner fallback + fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling. |
| .github/workflows/cluster_endtoend_vreplication_across_db_versions.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_topo_connection_cache.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_tabletmanager_throttler_topo.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_tabletmanager_tablegc.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_tabletmanager_consul.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_schemadiff_vrepl.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_onlineddl_vrepl.yml | Adds fork-safe runner fallback + fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling. |
| .github/workflows/cluster_endtoend_onlineddl_vrepl_suite.yml | Adds fork-safe runner fallback + fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling. |
| .github/workflows/cluster_endtoend_onlineddl_vrepl_stress.yml | Adds fork-safe runner fallback + fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling. |
| .github/workflows/cluster_endtoend_onlineddl_vrepl_stress_suite.yml | Adds fork-safe runner fallback + fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling. |
| .github/workflows/cluster_endtoend_onlineddl_scheduler.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_onlineddl_revert.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_mysql80.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_mysql_server_vault.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_ers_prs_newfeatures_heavy.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_backup_pitr.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_backup_pitr_xtrabackup.yml | Fixes Percona setup + Ubuntu 24.04 MySQL uninstall/AppArmor handling. |
| .github/workflows/cluster_endtoend_backup_pitr_mysqlshell.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_21.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_18.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_15.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_13.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
| .github/workflows/cluster_endtoend_12.yml | Fixes Ubuntu 24.04 MySQL uninstall/AppArmor handling + archive package fetches. |
Comments suppressed due to low confidence (1)
.github/workflows/static_checks_etc.yml:37
- This workflow passes a FOSSA API key directly in the workflow file. Even if it's described as "push-only", it's still a credential and should be stored as a GitHub Actions secret (or use the GitHub-provided token/OIDC flow if supported) to avoid credential leakage via forks, logs, or history.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| # We have to install this old version of libaio1. See also: | ||
| # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 | ||
| curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb | ||
| wget http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb | ||
| sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb | ||
| # libtinfo5 is also needed for older MySQL 5.7 builds. | ||
| curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb | ||
| wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb | ||
| sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb |
There was a problem hiding this comment.
This is suboptimal, but this is true for all release branches at this point. I'll open a pull request to track this and have this fixed.
| # We have to install this old version of libaio1 in case we end up testing with MySQL 5.7. See also: | ||
| # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 | ||
| wget http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb | ||
| sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb | ||
| # libtinfo5 is also needed for older MySQL 5.7 builds. | ||
| wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb | ||
| sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb |
| # We have to install this old version of libaio1. See also: | ||
| # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 | ||
| wget http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb | ||
| sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb | ||
| # libtinfo5 is also needed for MySQL 5.7 builds. | ||
| wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb | ||
| sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb |
| # We have to install this old version of libaio1. See also: | ||
| # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 | ||
| curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb | ||
| wget http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb | ||
| sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb | ||
| # libtinfo5 is also needed for older MySQL 5.7 builds. | ||
| curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb | ||
| wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb | ||
| sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb | ||
| sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6 |
| # We have to install this old version of libaio1. See also: | ||
| # https://bugs.launchpad.net/ubuntu/+source/libaio/+bug/2067501 | ||
| curl -L -O http://mirrors.kernel.org/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb | ||
| wget http://archive.ubuntu.com/ubuntu/pool/main/liba/libaio/libaio1_0.3.112-13build1_amd64.deb | ||
| sudo dpkg -i libaio1_0.3.112-13build1_amd64.deb | ||
| # libtinfo5 is also needed for older MySQL 5.7 builds. | ||
| curl -L -O http://mirrors.kernel.org/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb | ||
| wget http://archive.ubuntu.com/ubuntu/pool/universe/n/ncurses/libtinfo5_6.3-2ubuntu0.1_amd64.deb | ||
| sudo dpkg -i libtinfo5_6.3-2ubuntu0.1_amd64.deb | ||
| sudo DEBIAN_FRONTEND="noninteractive" apt-get install -y mysql-client=5.7* mysql-community-server=5.7* mysql-server=5.7* libncurses6 |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## release-21.0 #20196 +/- ##
=============================================
Coverage 69.85% 69.86%
=============================================
Files 1573 1573
Lines 204911 204911
=============================================
+ Hits 143147 143156 +9
+ Misses 61764 61755 -9 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Description
release-21.0is long EOL and not supported. However, some users still run it internally, or have to run it for a short window as part of an upgrade path to a supported Vitess version. Those users sometimes need to backport fixes from newer branches into their own forks, and right now that's painful: CI on therelease-21.0branch is broken in several ways for any repo that isn'tvitessio/vitess(custom runners that forks can't schedule on, a stale ubuntu-24.04 image MySQL install conflict, a Percona repo that no longer ships the package we install, a Code Coverage job that goes red without an upload token, a handful of flaky tests, plus severaluses:references that don't satisfy the org's SHA-pin policy).This PR bundles the CI-only fixes needed to get
release-21.0green again so those backports can land. No production code is changed — everything is.github/, test helpers, or test code.To be clear: merging this is not a change in support status.
release-21.0remains EOL. This is a courtesy to make life easier for users still on the branch by accident or by upgrade-path necessity.The same set of fixes was opened against
release-20.0in #20195.Fork-runner / infra fallbacks
ci: fall back to ubuntu-24.04 outside vitessio/vitess— forks can't schedule ongh-hosted-runners-16cores-1-24.04; gate ongithub.repository.ci: gate remaining query_serving_queries_2 runners on github.repository— follow-up: twoquery_serving_queries_2workflows still hardcoded the custom runner.ci: fix MySQL install on ubuntu-24.04 runners— uninstall the ubuntu-24.04 image's pre-installed MySQL before installing ours, recreate the apparmor profile, and pull libaio1 / libtinfo5 from archive.ubuntu.com (mirrors what release-23.0/24.0'ssetup-mysqlcomposite action does).ci: enable pxb-80 repo for percona-xtrabackup-80 install—percona-release setup ps80no longer shipspercona-xtrabackup-80; set up the pdps8.0 + pxb-80 repos like release-23.0/24.0 do.Code Coverage gating
ci: skip Code Coverage job when CODECOV_TOKEN isn't available.ci: gate Code Coverage on github.repository instead of token presence— follow-up so tokenless/OIDC uploads onvitessio/vitessaren't accidentally disabled.Test deflakes (backports / cherry-picks)
Flakes: Address TestServerStats flakiness (#16991)— cherry-pick.go/mysql: relax TestTLSRequired revoked-cert assertion— acceptconnection reset by peer/broken pipealongsidebad certificate; all three mean the revoked cert was rejected.go/mysql: deflake TestStaticConfigHUP— backport of theauth_server_static_test.goslice of CI: Deflake Code Coverage workflow #19388 (poll withEventuallyWithTinstead of a fixed sleep).go/mysql: stop TestStaticConfigHUP panicking inside EventuallyWithT— follow-up: this branch is pinned to testify v1.9, whereCollectT.FailNowpanics andEventuallyWithTdoesn't recover. Useassert.X(c, ...)instead ofrequire.X(c, ...).go/vt/vtgate/schema: bump TestTrackerNoLock channel-send timeout— backport of thetracker_test.goslice of flaky test fix TestTrackerNoLock and TestCreateLookupVindexMultipleCreate #18317 (10ms → 50ms).CI: Look for expected log message rather than code in Backup tests (#19199)— cherry-pick.Action SHA pinning
ci: pin all GitHub Actions to full-length commit SHAs— the vitessio/vitess action policy requires everyuses:to reference a full 40-char commit SHA. Pin the eight remaining@v*/@masterreferences (codecov-action, setup-node, checkout, peter-evans, codeql-action, fossa-action, slack-workflow-status) at the same major versions they were on, using the SHAs upstream uses on newer branches.Related Issue(s)
None — these are CI-only stabilization fixes.
Checklist
Deployment Notes
None — CI-only changes.