From 878909b0401f5cfbe8e11b270ba3efb3037b647e Mon Sep 17 00:00:00 2001 From: "K. S. Ernest (iFire) Lee" Date: Fri, 21 Jun 2024 07:22:54 -0700 Subject: [PATCH] Enabled test_base in CI workflow Refactored test execution in CI workflow Avoid using python with. Revert "Avoid using python with." This reverts commit 974b458af677e7fc88770405ad4848cb4622d3ca. Disabled several CI steps --- .github/workflows/ci.yaml | 143 ++++++++++------------------- gitlab/download_blender_builder.sh | 9 -- gitlab/download_blender_release.sh | 9 -- gitlab/run_unittest.bat | 81 ---------------- requirements-dev.txt | 1 - 5 files changed, 48 insertions(+), 195 deletions(-) delete mode 100644 gitlab/download_blender_builder.sh delete mode 100644 gitlab/download_blender_release.sh delete mode 100644 gitlab/run_unittest.bat diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index fbfdd6c1..1aa714d4 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -15,19 +15,11 @@ env: jobs: pre_release: - runs-on: ubuntu-latest - strategy: - matrix: - python-version: [3.8] + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v2 - - name: Set up Python ${{ matrix.python-version }} - uses: actions/setup-python@v2 - with: - python-version: ${{ matrix.python-version }} - - name: Install dependencies run: | python -m pip install --upgrade pip @@ -42,91 +34,52 @@ jobs: mypy mixer continue-on-error: true - # - name: Build docs - # run: | - # sphinx-build -b html docs docs/_build/html - # rm -rf docs/_build/doctree - - # - name: Zip files - # run: | - # cp CHANGELOG.md README.md LICENSE mixer/ - # rm -rf mixer/blender_data/tests/ - - # - name: Upload artifacts - # uses: actions/upload-artifact@v2 - # with: - # name: "${{ github.repository }}_${{ github.ref_name }}_${{ github.sha }}" - # path: | - # docs/_build - # mixer - -# release: -# needs: pre_release -# runs-on: ubuntu-latest -# if: startsWith(github.ref, 'refs/tags/v') - -# steps: -# - uses: actions/checkout@v2 - -# - name: Set up Python 3.8 -# uses: actions/setup-python@v2 -# with: -# python-version: 3.8 - -# - name: Install dependencies -# run: | -# python -m pip install --upgrade pip -# pip install requests - -# - name: Download artifacts -# uses: actions/download-artifact@v2 -# with: -# name: "${{ github.repository }}_${{ github.ref_name }}_${{ github.sha }}" -# path: . + # - name: Build docs + # run: | + # sphinx-build -b html docs docs/_build/html + # rm -rf docs/_build/doctree -# - name: Create release -# run: | -# rm -rf mixer/blender_data/tests/ -# python -m zipfile -c mixer-${{ github.ref_name }}.zip mixer/ -# # You'll need to replace the following line with your own script or action for creating a release -# # python -m gitlab.release mixer-${{ github.ref_name }}.zip - -# - name: Upload release asset -# uses: actions/upload-release-asset@v1 -# env: -# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} -# with: -# upload_url: ${{ steps.create_release.outputs.upload_url }} -# asset_path: ./mixer-${{ github.ref_name }}.zip -# asset_name: mixer-${{ github.ref_name }}.zip -# asset_content_type: application/zip - -# test_base: -# needs: pre_release -# runs-on: windows-latest -# strategy: -# matrix: -# blender-version: ["2.92", "2.83", "2.93.beta", "3.0.alpha"] - -# steps: -# - uses: actions/checkout@v2 - -# - name: Set up Python 3.8 -# uses: actions/setup-python@v2 -# with: -# python-version: 3.8 - -# - name: Install dependencies -# run: | -# python -m pip install --upgrade pip -# pip install requests - -# - name: Download artifacts -# uses: actions/download-artifact@v2 -# with: -# name: "${{ github.repository }}_${{ github.ref_name }}_${{ github.sha }}" -# path: . + - name: Zip files + run: | + cp CHANGELOG.md README.md LICENSE mixer/ + rm -rf mixer/blender_data/tests/ -# - name: Run tests -# run: | -# gitlab\run_unittest.bat + - name: Upload artifacts + uses: actions/upload-artifact@v2 + with: + name: blender_mixer + path: | + docs/_build + mixer + + # - name: Install operating system dependencies + # run: | + # sudo apt install -y python3 blender + + # - name: Create local folders + # run: | + # mkdir -p gitlab/blender/cache + + # - name: Install Mixer in local blender + # run: | + # blender --background --python gitlab/install_mixer.py + + # - name: Install test dependencies + # run: | + # python3 -m pip install unittest-xml-reporting parameterized unittest2 xmlrunner + + # - name: Run tests within blender + # run: | + # blender --background --python-exit-code 1 --python-expr "\ + # import bpy, os, unittest, xmlrunner; \ + # bpy.ops.preferences.addon_enable(module='mixer'); \ + # os.makedirs('logs/tests', exist_ok=True); \ + # with open('logs/tests/blender_data.xml', 'wb') as output: \ + # suite = unittest.defaultTestLoader.discover(os.path.dirname(os.path.realpath('mixer/blender_data/tests'))); \ + # runner = xmlrunner.XMLTestRunner(verbosity=2, output=output); \ + # result = runner.run(suite); \ + # if not result.wasSuccessful(): \ + # raise AssertionError('Tests failed')" + # python3 -m xmlrunner discover --verbose tests.vrtist -o $MIXER_TEST_OUTPUT + # python3 -m xmlrunner discover --verbose tests.broadcaster -o $MIXER_TEST_OUTPUT + # python3 -m xmlrunner discover --verbose tests.blender -o $MIXER_TEST_OUTPUT diff --git a/gitlab/download_blender_builder.sh b/gitlab/download_blender_builder.sh deleted file mode 100644 index ad32c1ed..00000000 --- a/gitlab/download_blender_builder.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e -set -x - -CURRENT_DIR=`dirname $0` -mkdir -p $CURRENT_DIR/blender/cache/ -curl https://builder.blender.org/download/$MIXER_BLENDER_ZIP_BASENAME.zip -o $CURRENT_DIR/blender/cache/$MIXER_BLENDER_ZIP_BASENAME.zip -ls -l $CURRENT_DIR/blender/cache/$MIXER_BLENDER_ZIP_BASENAME.zip \ No newline at end of file diff --git a/gitlab/download_blender_release.sh b/gitlab/download_blender_release.sh deleted file mode 100644 index f4ce9325..00000000 --- a/gitlab/download_blender_release.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e -set -x - -CURRENT_DIR=`dirname $0` -mkdir -p $CURRENT_DIR/blender/cache/ -curl https://download.blender.org/release/Blender$MIXER_BLENDER_VERSION_BASE/$MIXER_BLENDER_ZIP_BASENAME.zip -o $CURRENT_DIR/blender/cache/$MIXER_BLENDER_ZIP_BASENAME.zip -ls -l $CURRENT_DIR/blender/cache/$MIXER_BLENDER_ZIP_BASENAME.zip \ No newline at end of file diff --git a/gitlab/run_unittest.bat b/gitlab/run_unittest.bat deleted file mode 100644 index ef641cb5..00000000 --- a/gitlab/run_unittest.bat +++ /dev/null @@ -1,81 +0,0 @@ -tscon 0 /dest:console -tscon 1 /dest:console -tscon 2 /dest:console -tscon 3 /dest:console -tscon 4 /dest:console -tscon 5 /dest:console - -set ERROR=0 -set CURRENT_DIR=%~dp0 - -REM Detect nasty cases where the working copy is not correctly updated -git log -n 1 -echo %CI_COMMIT_SHA% -set GIT=git log -n 1 --oneline --no-abbrev-commit -for /f "tokens=1 USEBACKQ" %%F in (`%GIT%`) do (set COMMIT_SHA=%%F) -if %COMMIT_SHA% NEQ %CI_COMMIT_SHA% (exit /B 1) - -SET - -REM create local folders if required -if not exist %CURRENT_DIR%\blender mkdir %CURRENT_DIR%\blender -set CACHE=%CURRENT_DIR%\blender\cache -if not exist %CACHE% mkdir %CACHE% - -REM remove old blender install if it exists -RD /S /Q %CURRENT_DIR%\blender\%MIXER_BLENDER_ZIP_BASENAME% - -IF %MIXER_BLENDER_DOWNLOAD% == "release" GOTO DOWNLOADZIP -REM Download from builder: always cleanup, files are never reusable -REM - Beta file changes event if name does not -REM - Alpha file has hash in name -RMDIR /S /Q %CACHE%\%MIXER_BLENDER_ZIP_BASENAME% -DEL %CACHE%\%MIXER_BLENDER_ZIP_BASENAME%.zip - -:DOWNLOADZIP -REM if unzipped folder already exists in cache folder, just copy it -IF EXIST %CACHE%\%MIXER_BLENDER_ZIP_BASENAME% GOTO COPYUNZIPEDFOLDER -IF EXIST %CACHE%\%MIXER_BLENDER_ZIP_BASENAME%.zip GOTO UNZIP - -REM rely on a bash script to download blender, to bypass proxy issues with powershell Invoke-WebRequest -"%MIXER_BASH_EXE%" %CURRENT_DIR%\download_blender_%MIXER_BLENDER_DOWNLOAD%%.sh - -:UNZIP -REM unzip blender -powershell Expand-Archive %CACHE%\%MIXER_BLENDER_ZIP_BASENAME%.zip -DestinationPath %CURRENT_DIR%\blender\cache - -:COPYUNZIPEDFOLDER -xcopy /S /Q /Y /F %CACHE%\%MIXER_BLENDER_ZIP_BASENAME% %CURRENT_DIR%\blender\%MIXER_BLENDER_ZIP_BASENAME%\ - -REM create config folder to isolate blender from user environment -powershell New-Item -ItemType Directory -Path %CURRENT_DIR%\blender\%MIXER_BLENDER_ZIP_BASENAME%\%MIXER_BLENDER_VERSION_BASE%\config - -set MIXER_BLENDER_EXE_DIR=%CURRENT_DIR%\blender\%MIXER_BLENDER_ZIP_BASENAME% -set MIXER_BLENDER_EXE_PATH=%MIXER_BLENDER_EXE_DIR%\blender.exe -set PYTHON=%MIXER_BLENDER_EXE_DIR%\%MIXER_BLENDER_VERSION_BASE%\python\bin\python.exe - -REM install Mixer in local blender -%MIXER_BLENDER_EXE_PATH% --background --python %CURRENT_DIR%\install_mixer.py - -REM These tests run within blender -%PYTHON% -m pip install unittest-xml-reporting parameterized -%MIXER_BLENDER_EXE_PATH% --background --python-exit-code 1 --python mixer\blender_data\tests\ci.py -if %ERRORLEVEL% GEQ 1 SET ERROR=%ERRORLEVEL% - -REM These tests launch 2 blender that communicate together -%PYTHON% -m xmlrunner discover --verbose tests.vrtist -o %MIXER_TEST_OUTPUT% -if %ERRORLEVEL% GEQ 1 SET ERROR=%ERRORLEVEL% - -%PYTHON% -m xmlrunner discover --verbose tests.broadcaster -o %MIXER_TEST_OUTPUT% -if %ERRORLEVEL% GEQ 1 SET ERROR=%ERRORLEVEL% - -%PYTHON% -m xmlrunner discover --verbose tests.blender -o %MIXER_TEST_OUTPUT% -if %ERRORLEVEL% GEQ 1 SET ERROR=%ERRORLEVEL% - -IF %MIXER_BLENDER_DOWNLOAD% == "release" GOTO END -REM Download from builder: always cleanup, files are never reusable -RMDIR /S /Q %CACHE%\%MIXER_BLENDER_ZIP_BASENAME% -DEL %CACHE%\%MIXER_BLENDER_ZIP_BASENAME%.zip - -:END -if %ERROR% GEQ 1 EXIT /B %ERROR% \ No newline at end of file diff --git a/requirements-dev.txt b/requirements-dev.txt index 65473bee..cfe2ed53 100644 --- a/requirements-dev.txt +++ b/requirements-dev.txt @@ -25,7 +25,6 @@ requests==2.23.0 Sphinx==3.5.1 sphinx-rtd-theme==0.5.1 toml==0.10.1 -typed-ast==1.4.1 typing==3.7.4.1 typing-extensions==3.7.4.2 unittest-xml-reporting==3.0.2