From 9643f4a9c36ed6e287e861b8266d4ab3b3f9a65c Mon Sep 17 00:00:00 2001 From: JarbasAi Date: Sat, 1 Aug 2026 16:51:17 +0100 Subject: [PATCH 1/2] ci: run the unit tests against the OVOS distro release channels Adds a thin caller for the gh-automations channel-compat reusable workflow: a stable and a testing cell, each installing the dependency tree at the versions that channel pins and running test/unittests against it. Advisory (soft_fail) until a known-gap baseline exists. --- .github/workflows/channel_compat.yml | 57 ++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 .github/workflows/channel_compat.yml diff --git a/.github/workflows/channel_compat.yml b/.github/workflows/channel_compat.yml new file mode 100644 index 00000000..54982758 --- /dev/null +++ b/.github/workflows/channel_compat.yml @@ -0,0 +1,57 @@ +name: Channel Compat + +# Run the unit tests against the package versions an OVOS distro release +# channel pins, instead of against current dev siblings. +# +# The distro publishes one constraints file per channel, fetched live by the +# reusable workflow and uploaded as an artifact. As of writing, `stable` pins +# ovos-workshop 3.4.x and `testing` pins 7.0.x, against an ovos-core of 1.3.x +# and 2.1.x respectively — both far below dev. That gap matters most here: +# workshop is what a skill container freezes, so a workshop change that is green +# on dev can still break every skill on the fleet. +# +# This is the third layer of the compat program: +# +# boundary pins where did the behavior change? +# (ovos-test-harness test/backcompat) +# channels what does the fleet run today? (this file) +# dev edge where is the stack going? (build_tests.yml) +# +# soft_fail is TRUE for now. A channel is behind dev by construction, so +# the first runs are expected to fail a pile of tests — that is the finding, not +# a broken job. TURN soft_fail OFF once the baseline is established, the same +# way ovos-test-harness did it: check in a per-channel known-gap file, strict- +# xfail exactly those node ids, and let anything else be red. +# See https://github.com/OpenVoiceOS/ovos-test-harness (test/channel_gaps/). + +on: + pull_request: + branches: [dev] + push: + branches: [dev] + schedule: + # The channels move on the distro's schedule, not on this repo's. + - cron: "0 6 * * 1" + workflow_dispatch: + +jobs: + channel-compat: + strategy: + fail-fast: false + matrix: + include: + - channel: stable + url: https://raw.githubusercontent.com/OpenVoiceOS/OpenVoiceOS/main/constraints-stable.txt + - channel: testing + url: https://raw.githubusercontent.com/OpenVoiceOS/OpenVoiceOS/main/constraints-testing.txt + name: ${{ matrix.channel }} + uses: OpenVoiceOS/gh-automations/.github/workflows/channel-compat.yml@dev + secrets: inherit + with: + channel_url: ${{ matrix.url }} + channel_name: ${{ matrix.channel }} + # GitHub rejects `continue-on-error` on a job that calls a reusable + # workflow, so the advisory mode is an input instead. + soft_fail: true + test_path: 'test/unittests' + install_extras: 'test' From df5a94657449cd19b03c417542e3f94d101e17e9 Mon Sep 17 00:00:00 2001 From: JarbasAi Date: Sat, 1 Aug 2026 17:31:10 +0100 Subject: [PATCH 2/2] ci: retrigger channel-compat after gh-automations #74/#75 Co-Authored-By: Claude Fable 5