diff --git a/.github/workflows/experimental_tests.yml b/.github/workflows/experimental_tests.yml index 639260a999..03f233c4f4 100644 --- a/.github/workflows/experimental_tests.yml +++ b/.github/workflows/experimental_tests.yml @@ -16,7 +16,7 @@ on: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" - build: + experimental: strategy: fail-fast: false @@ -32,7 +32,7 @@ jobs: # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v4.1.6 # experiment: maybe don't need this? # update: looks like we do: with this commented out, the build hung @@ -44,7 +44,7 @@ jobs: static: 0 - name: Set up Python 3.11 ${{ matrix.os }} - uses: actions/setup-python@v5.0.0 + uses: actions/setup-python@v5.1.0 with: python-version: '3.11' diff --git a/.github/workflows/framework_tests.yml b/.github/workflows/framework_tests.yml index 680c8b97c0..bf5ab05c26 100644 --- a/.github/workflows/framework_tests.yml +++ b/.github/workflows/framework_tests.yml @@ -29,10 +29,10 @@ jobs: steps: # Checkouut repository under $GITHUB_WORKSPACE - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v4.1.6 - name: Set up Python 3.11 ${{ matrix.os }} - uses: actions/setup-python@v5.0.0 + uses: actions/setup-python@v5.1.0 with: python-version: '3.11' diff --git a/.github/workflows/runtest-win.yml b/.github/workflows/runtest-win.yml new file mode 100644 index 0000000000..ffbe071156 --- /dev/null +++ b/.github/workflows/runtest-win.yml @@ -0,0 +1,41 @@ +# This is a basic workflow to help you get started with Actions + +name: Full Test Suite on Windows + +# Controls when the workflow will run +on: + # Triggers the workflow on push or pull request events but only for the master branch + push: + branches: [ master ] + pull_request: + branches: [ master ] + + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + +jobs: + runtest-win32: + runs-on: windows-latest + steps: + - uses: actions/checkout@v4.1.6 + + - name: Set up Python 3.12 + uses: actions/setup-python@v5.1.0 + with: + python-version: '3.12' + + - name: Install dependencies including ninja + run: | + python -m pip install --upgrade pip + python -m pip install -r requirements-dev.txt + + - name: runtest + run: | + python runtest.py --all --exclude-list=windows_ci_skip.txt --time --jobs=4 + + - name: Archive Failed tests + uses: actions/upload-artifact@v4.3.3 + with: + name: windows-failed-tests + path: | + failed_tests.log diff --git a/.github/workflows/runtest.yml b/.github/workflows/runtest.yml index 4f1b3f4f26..40ad3970ac 100644 --- a/.github/workflows/runtest.yml +++ b/.github/workflows/runtest.yml @@ -1,6 +1,6 @@ # This is a basic workflow to help you get started with Actions -name: Linux Testing +name: Full Test Suite on Linux # Controls when the workflow will run on: @@ -15,25 +15,28 @@ on: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: - # This workflow contains a single job called "build" - build: - + # This workflow contains a single job called "runtest" + runtest: strategy: + fail-fast: false matrix: - os: ['ubuntu-22.04'] + os: ['ubuntu-22.04', 'ubuntu-24.04'] - # The type of runner that the job will run on runs-on: ${{ matrix.os }} - # Steps represent a sequence of tasks that will be executed as part of the job steps: # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v4.1.6 + + - name: Install Ubuntu packages $${matrix.os}} + run: | + sudo apt-get update + sudo apt-get install libtirpc-dev - - name: Set up Python 3.10 ${{ matrix.os }} - uses: actions/setup-python@v5.0.0 + - name: Set up Python 3.12 ${{ matrix.os }} + uses: actions/setup-python@v5.1.0 with: - python-version: '3.10' + python-version: '3.12' - name: Install dependencies including ninja ${{ matrix.os }} run: | @@ -43,10 +46,10 @@ jobs: - name: runtest ${{ matrix.os }} run: | - python runtest.py --all --time --jobs=2 + python runtest.py --all --time --jobs=4 - name: Archive Failed tests ${{ matrix.os }} - uses: actions/upload-artifact@v3.1.3 + uses: actions/upload-artifact@v4.3.3 with: name: ${{ matrix.os }}-failed-tests path: | diff --git a/.github/workflows/scons-package.yml b/.github/workflows/scons-package.yml index 6c36cf049b..69526aa041 100644 --- a/.github/workflows/scons-package.yml +++ b/.github/workflows/scons-package.yml @@ -9,17 +9,17 @@ on: branches: [ master ] jobs: - build: + package: - runs-on: ubuntu-20.04 + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v4.1.1 + - uses: actions/checkout@v4.1.6 - - name: Set up Python 3.10 - uses: actions/setup-python@v5.0.0 + - name: Set up Python 3.12 + uses: actions/setup-python@v5.1.0 with: - python-version: '3.10' + python-version: '3.12' - name: Install dependencies run: | diff --git a/requirements-dev.txt b/requirements-dev.txt index 8a526fe3f8..e97410e08d 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -5,7 +5,7 @@ # for now keep pinning "known working" lxml, # it's been a troublesome component in the past. # Skip lxml for win32 as no tests which require it currently pass on win32 -lxml==4.9.3; python_version < '3.13' and sys_platform != 'win32' +lxml<5; python_version < '3.13' and sys_platform != 'win32' ninja diff --git a/requirements-pkg.txt b/requirements-pkg.txt index c83375e97d..3b30462a94 100644 --- a/requirements-pkg.txt +++ b/requirements-pkg.txt @@ -8,7 +8,7 @@ readme-renderer # sphinx pinned because it has broken several times on new releases -sphinx < 7.0 +sphinx sphinx-book-theme rst2pdf diff --git a/windows_ci_skip.txt b/windows_ci_skip.txt new file mode 100644 index 0000000000..24a2b6c8a8 --- /dev/null +++ b/windows_ci_skip.txt @@ -0,0 +1,41 @@ +# temporarily skip this in GitHub Windows runner +test/CPPDEFINES/pkg-config.py +test/Interactive/added-include.py +test/Interactive/Alias.py +test/Interactive/basic.py +test/Interactive/cache-debug.py +test/Interactive/cache-disable.py +test/Interactive/cache-force.py +test/Interactive/cache-show.py +test/Interactive/clean.py +test/Interactive/configure.py +test/Interactive/Default-None.py +test/Interactive/Default.py +test/Interactive/exit.py +test/Interactive/failure.py +test/Interactive/help.py +test/Interactive/implicit-VariantDir.py +test/Interactive/option--Q.py +test/Interactive/option-i.py +test/Interactive/option-j.py +test/Interactive/option-k.py +test/Interactive/option-n.py +test/Interactive/option-s.py +test/Interactive/repeat-line.py +test/Interactive/shell.py +test/Interactive/tree.py +test/Interactive/unknown-command.py +test/Interactive/variant_dir.py +test/MSVC/msvc.py +test/packaging/msi/explicit-target.py +test/packaging/msi/file-placement.py +test/packaging/msi/package.py +test/packaging/tar/xz_packaging.py +test/scons-time/run/config/python.py +test/scons-time/run/option/python.py +test/scons-time/run/option/quiet.py +test/scons-time/run/option/verbose.py +test/sconsign/script/no-SConsignFile.py +test/sconsign/script/SConsignFile.py +test/sconsign/script/Signatures.py +