diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6f9fdc4842..9d1d217218 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,93 +18,94 @@ on: - cron: "0 5 * * 1" jobs: - "Posix": - name: build-*nix - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [ubuntu-latest, macos-latest] - steps: - - name: Checkout - uses: actions/checkout@v1 - - name: Setup Python - uses: actions/setup-python@v4 - with: - python-version: '3.11' - - name: Setup Java - uses: actions/setup-java@v3 - with: - distribution: 'temurin' - java-version: '11' - - name: Setup dotnet - uses: actions/setup-dotnet@v3 - with: - dotnet-version: '6.0.X' - # TODO: install on other platforms, too - - name: Setup tcl (ubuntu) - if: matrix.os == 'ubuntu-latest' - run: sudo apt-get update && sudo apt-get install tcl-dev - - - name: build - env: - # instructs SCons to print debug statements to stdout - SCONS_MSCOMMON_DEBUG: '-' - run: python3 scons/scons.py --scu --opt --verbose all performance_tests - - - name: Pack artifacts - run: tar -czvf build.tar.gz out/ - - name: upload artifacts - uses: actions/upload-artifact@v3 - with: - name: Soar-${{ matrix.os }} - path: ./build.tar.gz - - - name: unit tests - working-directory: ./out - # TODO: why do these fail? Make them pass. testHamilton only fails on Mac, and only sometimes. - run: ./UnitTests -e PRIMS_Sanity1 -e PRIMS_Sanity2 -f testLoadLibrary -f testSmemArithmetic -f testHamilton - - - name: SML Java tests - working-directory: ./out - env: - LD_LIBRARY_PATH: ${{ github.workspace }}/out - run: java -jar java/soar-smljava.jar - - - name: SML Python tests - working-directory: ./out - env: - LD_LIBRARY_PATH: ${{ github.workspace }}/out - PYTHONUTF8: 1 - run: python3 TestPythonSML.py - - - name: SML Tcl tests - working-directory: ./out - run: tclsh TestTclSML.tcl - - # TODO: run additional tests for CSharp - - # reports JUnit test results as GitHub PR check. - - name: publish test report - uses: mikepenz/action-junit-report@v3 - # always run even if the previous step fails - if: always() - with: - report_paths: './out/TestResults.xml' - # disabled until https://github.com/mikepenz/action-junit-report/issues/40 is resolved - # fail_on_failure: true - annotate_only: true - # TODO: run SML tests (Python, Tcl, Java) - - - name: performance tests - working-directory: ./out - run: sudo ./do_performance_test.sh - - - name: upload performance test results - uses: actions/upload-artifact@v3 - with: - name: ${{ matrix.os }}-PerformanceTestResults.txt - path: ./out/SoarPerformanceTests/PerformanceTestResults.txt + # Temporarily disable for testing. TODO: put this back! + # "Posix": + # name: build-*nix + # runs-on: ${{ matrix.os }} + # strategy: + # fail-fast: false + # matrix: + # os: [ubuntu-latest, macos-latest] + # steps: + # - name: Checkout + # uses: actions/checkout@v1 + # - name: Setup Python + # uses: actions/setup-python@v4 + # with: + # python-version: '3.11' + # - name: Setup Java + # uses: actions/setup-java@v3 + # with: + # distribution: 'temurin' + # java-version: '11' + # - name: Setup dotnet + # uses: actions/setup-dotnet@v3 + # with: + # dotnet-version: '6.0.X' + # # TODO: install on other platforms, too + # - name: Setup tcl (ubuntu) + # if: matrix.os == 'ubuntu-latest' + # run: sudo apt-get update && sudo apt-get install tcl-dev + + # - name: build + # env: + # # instructs SCons to print debug statements to stdout + # SCONS_MSCOMMON_DEBUG: '-' + # run: python3 scons/scons.py --scu --opt --verbose all performance_tests + + # - name: Pack artifacts + # run: tar -czvf build.tar.gz out/ + # - name: upload artifacts + # uses: actions/upload-artifact@v3 + # with: + # name: Soar-${{ matrix.os }} + # path: ./build.tar.gz + + # - name: unit tests + # working-directory: ./out + # # TODO: why do these fail? Make them pass. testHamilton only fails on Mac, and only sometimes. + # run: ./UnitTests -e PRIMS_Sanity1 -e PRIMS_Sanity2 -f testLoadLibrary -f testSmemArithmetic -f testHamilton + + # - name: SML Java tests + # working-directory: ./out + # env: + # LD_LIBRARY_PATH: ${{ github.workspace }}/out + # run: java -jar java/soar-smljava.jar + + # - name: SML Python tests + # working-directory: ./out + # env: + # LD_LIBRARY_PATH: ${{ github.workspace }}/out + # PYTHONUTF8: 1 + # run: python3 TestPythonSML.py + + # - name: SML Tcl tests + # working-directory: ./out + # run: tclsh TestTclSML.tcl + + # # TODO: run additional tests for CSharp + + # # reports JUnit test results as GitHub PR check. + # - name: publish test report + # uses: mikepenz/action-junit-report@v3 + # # always run even if the previous step fails + # if: always() + # with: + # report_paths: './out/TestResults.xml' + # # disabled until https://github.com/mikepenz/action-junit-report/issues/40 is resolved + # # fail_on_failure: true + # annotate_only: true + # # TODO: run SML tests (Python, Tcl, Java) + + # - name: performance tests + # working-directory: ./out + # run: sudo ./do_performance_test.sh + + # - name: upload performance test results + # uses: actions/upload-artifact@v3 + # with: + # name: ${{ matrix.os }}-PerformanceTestResults.txt + # path: ./out/SoarPerformanceTests/PerformanceTestResults.txt # Using powershell means we need to explicitly stop on failure Windows: @@ -150,6 +151,7 @@ jobs: if ($lastexitcode -ne 0) { throw "nmake exit code: $lastexitcode" } + setx /M PATH "$($env:path);c:\progra~1\tcl\bin" - name: build env: