mirror of
https://github.com/LorenEteval/Furious.git
synced 2026-10-02 20:07:59 +03:00
Gate publication on source regression tests
Signed-off-by: Loren Eteval <loren.eteval@proton.me>
This commit is contained in:
+5
-3
@@ -41,9 +41,11 @@ exceptions; it does not define the source test suite or imply that every package
|
||||
- Validate YAML and every affected expression/shell. Trace each changed matrix row through dependency installation,
|
||||
source/native import checks, Nuitka/installer output, packaged architecture/dependency checks, artifact upload, and tag
|
||||
gates. When a target cannot run locally, add a narrow CI assertion that fails before publication with a useful reason.
|
||||
- The current workflow performs packaging/import/native checks but does not run the unittest behavioral suite. Do
|
||||
not call an artifact build a regression-test pass; use `tests/README.md` for source verification. Check actual
|
||||
`needs` and tag gates rather than assuming a downstream publish job runs on every build. Follow each publication
|
||||
- `workflows/source-tests.yml` runs isolated source unittest discovery on Windows, Linux, and macOS and is a
|
||||
required dependency of PyPI publication through `deploy-pypi.yml`. It can also run manually. Daily binary
|
||||
builds retain their separate artifact scope. Source tests do not establish packaged behavior or Python/Qt
|
||||
floors beyond their matrix. Do not call an artifact build a regression-test pass; use `tests/README.md` for
|
||||
source verification. Check actual `needs` and tag gates rather than assuming a downstream publish job runs on every build. Follow each publication
|
||||
dependency back to its required artifact checks; upload success alone does not establish release eligibility.
|
||||
- Revalidate version/architecture claims against the current matrix instead of duplicating all pins here. When build
|
||||
topology intentionally changes, update this scope and follow every consumer through upload and publication.
|
||||
|
||||
@@ -24,6 +24,10 @@ defaults:
|
||||
shell: bash
|
||||
|
||||
jobs:
|
||||
source-tests:
|
||||
name: Source regression tests
|
||||
uses: ./.github/workflows/source-tests.yml
|
||||
|
||||
build-distribution:
|
||||
name: Build distribution
|
||||
runs-on: ubuntu-latest
|
||||
@@ -60,6 +64,7 @@ jobs:
|
||||
name: Publish Python distribution to PyPI
|
||||
if: startsWith(github.ref, 'refs/tags/') # only publish to PyPI on tag pushes
|
||||
needs:
|
||||
- source-tests
|
||||
- build-distribution
|
||||
- deploy-binaries
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
name: Source regression tests
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
unittest:
|
||||
name: Source tests on ${{ matrix.os }}
|
||||
runs-on: ${{ matrix.os }}
|
||||
timeout-minutes: 30
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os: [ubuntu-22.04, windows-2025, macos-14]
|
||||
env:
|
||||
QT_QPA_PLATFORM: offscreen
|
||||
PYTHONUTF8: "1"
|
||||
steps:
|
||||
- uses: actions/checkout@v7
|
||||
- uses: actions/setup-python@v7
|
||||
with:
|
||||
python-version: "3.13"
|
||||
- name: Install Linux Qt runtime libraries
|
||||
if: runner.os == 'Linux'
|
||||
run: sudo apt-get update && sudo apt-get install -y libegl1 libopengl0
|
||||
- name: Install source test dependencies
|
||||
run: python -m pip install -r requirements.txt "PySide6-Essentials==6.8.3" "PySide6-Addons==6.8.3"
|
||||
- name: Run isolated behavioral and resource tests
|
||||
run: python -m unittest discover -s tests -v
|
||||
Reference in New Issue
Block a user