From 2226aefe3abbf2f27711f0ac5709b8b52325f24d Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Thu, 9 May 2024 18:40:04 -0700 Subject: [PATCH 01/77] Try to use upload-artifacts v3 Hopefully should work with node20? Might need v4 for that. Relative paths don't work, cf https://github.com/actions/upload-artifact/issues/176 --- .github/workflows/main.yml | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e20405a09f..87b2499f7f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -389,6 +389,10 @@ jobs: cd ${RUNNER_WORKSPACE}/build-roadrunner ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --tests-regex ^python_tests* + - name: Workaround actions/upload-artifact#176 + run: | + echo "artifacts_root=$(realpath ..)" >> $GITHUB_ENV + - name: Set artifacts path and name shell: bash run: | @@ -408,10 +412,10 @@ jobs: os_name_without_build_type="${os_name%%-*}" echo "artifacts_name=roadrunner-${os_name_without_build_type}-${host_architecture}-${{ matrix.platform.build_type }}" >> "${GITHUB_ENV}" fi - echo "artifacts_path=../install-roadrunner" >> "${GITHUB_ENV}" + echo "artifacts_path=${{env.artifacts_root}}/install-roadrunner" >> "${GITHUB_ENV}" - name: Upload roadrunner binaries - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v3 with: name: ${{env.artifacts_name}} path: ${{env.artifacts_path}} @@ -458,19 +462,19 @@ jobs: roadrunner_plugins_python_wheel_file_name=$(ls install-roadrunner/dist | grep '^rrplugins') echo "roadrunner_plugins_python_wheel_artifacts_name=${roadrunner_plugins_python_wheel_file_name}" >> "${GITHUB_ENV}" # we need to use relative path as actions/upload-artifact@v1 cannot find it on containerized runners - echo "roadrunner_python_wheel_artifacts_file=../install-roadrunner/dist/$roadrunner_python_wheel_file_name" >> "${GITHUB_ENV}" - echo "roadrunner_plugins_python_wheel_artifacts_file=../install-roadrunner/dist/$roadrunner_plugins_python_wheel_file_name" >> "${GITHUB_ENV}" + echo "roadrunner_python_wheel_artifacts_file=${{artifacts_root}}/install-roadrunner/dist/$roadrunner_python_wheel_file_name" >> "${GITHUB_ENV}" + echo "roadrunner_plugins_python_wheel_artifacts_file=${{artifacts_root}}/install-roadrunner/dist/$roadrunner_plugins_python_wheel_file_name" >> "${GITHUB_ENV}" - name: Upload RoadRunner Python wheel artifacts if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v3 with: name: ${{env.roadrunner_python_wheel_artifacts_name}} path: ${{env.roadrunner_python_wheel_artifacts_file}} - name: Upload RoadRunner Plugins Python wheel artifacts if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v3 with: name: ${{env.roadrunner_plugins_python_wheel_artifacts_name}} path: ${{env.roadrunner_plugins_python_wheel_artifacts_file}} \ No newline at end of file From 9589e09e2f8c8f5010da7107f2afc90ca2d82a19 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Thu, 9 May 2024 19:02:01 -0700 Subject: [PATCH 02/77] Fix env. --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 87b2499f7f..fa05ac0969 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -462,8 +462,8 @@ jobs: roadrunner_plugins_python_wheel_file_name=$(ls install-roadrunner/dist | grep '^rrplugins') echo "roadrunner_plugins_python_wheel_artifacts_name=${roadrunner_plugins_python_wheel_file_name}" >> "${GITHUB_ENV}" # we need to use relative path as actions/upload-artifact@v1 cannot find it on containerized runners - echo "roadrunner_python_wheel_artifacts_file=${{artifacts_root}}/install-roadrunner/dist/$roadrunner_python_wheel_file_name" >> "${GITHUB_ENV}" - echo "roadrunner_plugins_python_wheel_artifacts_file=${{artifacts_root}}/install-roadrunner/dist/$roadrunner_plugins_python_wheel_file_name" >> "${GITHUB_ENV}" + echo "roadrunner_python_wheel_artifacts_file=${{env.artifacts_root}}/install-roadrunner/dist/$roadrunner_python_wheel_file_name" >> "${GITHUB_ENV}" + echo "roadrunner_plugins_python_wheel_artifacts_file=${{env.artifacts_root}}/install-roadrunner/dist/$roadrunner_plugins_python_wheel_file_name" >> "${GITHUB_ENV}" - name: Upload RoadRunner Python wheel artifacts if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' From 8e262db8cb59633198eec93089188e04d1c35adb Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 11:04:15 -0700 Subject: [PATCH 03/77] Update checkout for non-manylinux. --- .github/workflows/main.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fa05ac0969..33a71f9629 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -106,8 +106,13 @@ jobs: steps: - name: Checkout RoadRunner + if: matrix.platform.os_type == 'manylinux' uses: actions/checkout@v3 + - name: Checkout RoadRunner + if: matrix.platform.os_type != 'manylinux' + uses: actions/checkout@v4 + - name: Set MSVC as the default compiler on Windows if: matrix.platform.os_type == 'windows' uses: ilammy/msvc-dev-cmd@v1.12.1 From 0992fb8bc03b3b802420a6b2aebac7d76f8d11eb Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 12:07:51 -0700 Subject: [PATCH 04/77] First pass at collapsing python elements. --- .github/workflows/main.yml | 145 ++++++++++++++++--------------------- 1 file changed, 63 insertions(+), 82 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 33a71f9629..018ac064ce 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -19,65 +19,47 @@ jobs: os_type: macos os_name: macos-11 build_type: Release - build_tests: ON - build_plugins: ON build_python: ON - name: macos-11-debug os_type: macos os_name: macos-11 build_type: Debug - build_tests: ON - build_plugins: ON - build_python: ON + build_python: OFF - name: macos-latest-release os_type: macos os_name: macos-latest build_type: Release - build_tests: OFF - build_plugins: ON build_python: ON - name: macos-latest-debug os_type: macos os_name: macos-latest build_type: Debug - build_tests: ON - build_plugins: ON - build_python: ON + build_python: OFF - name: ubuntu-latest-release os_type: ubuntu os_name: ubuntu-latest build_type: Release - build_tests: ON - build_plugins: ON build_python: ON - name: ubuntu-latest-debug os_type: ubuntu os_name: ubuntu-latest build_type: Debug - build_tests: ON - build_plugins: ON - build_python: ON + build_python: OFF - name: windows-latest-release os_type: windows os_name: windows-latest build_type: Release - build_tests: ON - build_plugins: ON build_python: ON - name: windows-latest-debug os_type: windows os_name: windows-latest build_type: Debug - build_tests: OFF - build_plugins: OFF build_python: OFF - name: manylinux2014-release os_type: manylinux os_name: ubuntu-latest container_image: quay.io/pypa/manylinux2014_x86_64 build_type: Release - build_tests: ON - build_plugins: ON build_python: ON libroadrunner_deps_owner: [ "sys-bio" ] libroadrunner_deps_repo: [ "libroadrunner-deps" ] @@ -87,24 +69,66 @@ jobs: llvm_repo: [ "llvm-13.x" ] llvm_name: [ "llvm-13.x" ] llvm_release_version: [ "v13.0" ] - python_version: - - name: py39 - version: "3.9" - run_tests: OFF - - name: py310 - version: "3.10" - run_tests: OFF - - name: py311 - version: "3.11" - run_tests: OFF - - name: py312 - version: "3.12" - run_tests: ON + build_tests: [ON] + build_plugins: [ON] runs-on: ${{ matrix.platform.os_name }} container: image: ${{ matrix.platform.container_image || '' }} steps: + - name: Setup python versions + run: | + echo "python_v1=3.9" >> $GITHUB_ENV + echo "python_v2=3.10" >> $GITHUB_ENV + echo "python_v3=3.11" >> $GITHUB_ENV + echo "python_v4=3.12" >> $GITHUB_ENV + echo "python_v1_name=39" >> $GITHUB_ENV + echo "python_v2_name=310" >> $GITHUB_ENV + echo "python_v3_name=311" >> $GITHUB_ENV + echo "python_v4_name=312" >> $GITHUB_ENV + + - name: Setup Python for non-Manylinux platforms + if: matrix.platform.build_python == 'ON' && matrix.platform.os_type != 'manylinux' + uses: actions/setup-python@v4 + with: + python-version: | + ${{ env.python_v1 }} + ${{ env.python_v2 }} + ${{ env.python_v3 }} + ${{ env.python_v4 }} + + - name: Setup Python for Manylinux platforms + if: matrix.platform.build_python == 'ON' && matrix.platform.os_type == 'manylinux' + shell: bash + run: | + wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh + bash Miniconda3-latest-Linux-x86_64.sh -b -p /Miniconda3 + + /Miniconda3/bin/conda create -y --name ${{ env.python_v1_name }} python=${{ env.python_v1 }} + /Miniconda3/bin/conda create -y --name ${{ env.python_v2_name }} python=${{ env.python_v2 }} + /Miniconda3/bin/conda create -y --name ${{ env.python_v3_name }} python=${{ env.python_v3 }} + /Miniconda3/bin/conda create -y --name ${{ env.python_v4_name }} python=${{ env.python_v4 }} + + /Miniconda3/bin/conda init && bash ~/.bashrc && . ~/.bashrc cd ${RUNNER_WORKSPACE} + sed -i 's/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g' configure + + - name: Install Python dependencies + if: matrix.platform.build_python == 'ON' + shell: bash + run: | + cd ${RUNNER_WORKSPACE}/roadrunner + if [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then + /Miniconda3/envs/${{ env.python_v1_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt + /Miniconda3/envs/${{ env.python_v2_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt + /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt + /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt + else + python${{ env.python_v1 }} -m pip install -r requirements.txt + python${{ env.python_v2 }} -m pip install -r requirements.txt + python${{ env.python_v3 }} -m pip install -r requirements.txt + python${{ env.python_v4 }} -m pip install -r requirements.txt + fi + - name: Checkout RoadRunner if: matrix.platform.os_type == 'manylinux' uses: actions/checkout@v3 @@ -200,49 +224,6 @@ jobs: ${{ runner.os }}-${{ steps.ccache_cache_timestamp.outputs.timestamp }} ${{ runner.os }}- - - name: Setup Python for non-Manylinux platforms - if: matrix.platform.build_python == 'ON' && matrix.platform.os_type != 'manylinux' - uses: actions/setup-python@v4 - with: - python-version: ${{ matrix.python_version.version }} - - - name: Setup Python for Manylinux platforms - if: matrix.platform.build_python == 'ON' && matrix.platform.os_type == 'manylinux' - shell: bash - run: | - cd ${RUNNER_WORKSPACE} - yum update -y - yum install -y gcc openssl-devel bzip2-devel libffi-devel epel-release openssl11-devel - mkdir -p python${{ matrix.python_version.version }} - cd python${{ matrix.python_version.version }} - curl -L https://www.python.org/ftp/python/${{ matrix.python_version.version }}.0/Python-${{ matrix.python_version.version }}.0.tgz > python.tgz - tar -zxf python.tgz - rm python.tgz - cd Python-${{ matrix.python_version.version }}.0 - sed -i 's/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g' configure - mkdir -p install-python - if [ -z "$CFLAGS" ]; then - export CFLAGS="-fPIC" - else - export CFLAGS="$CFLAGS -fPIC" - fi - ./configure --enable-optimizations --prefix=${RUNNER_WORKSPACE}/python${{ matrix.python_version.version }}/install-python - make install - echo "${RUNNER_WORKSPACE}/python${{ matrix.python_version.version }}/install-python/bin" >> "${GITHUB_PATH}" - - - name: Install Python dependencies - if: matrix.platform.build_python == 'ON' - shell: bash - run: | - cd ${RUNNER_WORKSPACE}/roadrunner - if [ "${{ matrix.platform.os_type }}" == 'windows' ]; then - python -m pip install -r requirements.txt - elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - python${{ matrix.python_version.version }} -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt - else - python${{ matrix.python_version.version }} -m pip install -r requirements.txt - fi - - name: Install Swig shell: bash run: | @@ -353,8 +334,8 @@ jobs: -DCMAKE_INSTALL_PREFIX="${RUNNER_WORKSPACE}/install-roadrunner" \ -DRR_DEPENDENCIES_INSTALL_PREFIX=${RR_DEPENDENCIES_INSTALL_PREFIX} \ -DLLVM_INSTALL_PREFIX=${LLVM_INSTALL_PREFIX} \ - -DBUILD_TESTS=${{ matrix.platform.build_tests }} \ - -DBUILD_RR_PLUGINS=${{ matrix.platform.build_plugins }} \ + -DBUILD_TESTS=${{ matrix.build_tests }} \ + -DBUILD_RR_PLUGINS=${{ matrix.build_plugins }} \ -DBUILD_PYTHON=${{ matrix.platform.build_python }} \ ${SWIG_DIR} @@ -365,7 +346,7 @@ jobs: cmake --build . --target install --config ${{ matrix.platform.build_type }} - name: Install test dependencies - if: matrix.platform.build_tests == 'ON' && matrix.platform.build_python == 'ON' + if: matrix.build_tests == 'ON' && matrix.platform.build_python == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE}/roadrunner @@ -381,14 +362,14 @@ jobs: fi - name: Run RoadRunner tests - if : matrix.platform.build_type == 'Release' && matrix.platform.build_tests == 'ON' && matrix.python_version.run_tests == 'ON' + if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' && matrix.python_version.run_tests == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress --exclude-regex "^python_tests.*" - name: Run RoadRunner Python tests - if : matrix.platform.build_type == 'Release' && matrix.platform.build_tests == 'ON' && matrix.platform.build_python == 'ON' + if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' && matrix.platform.build_python == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner From cc208cc25b95bba05fbc1412d99efbb2f3f4cd7e Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 12:29:05 -0700 Subject: [PATCH 05/77] Checkout roadrunner first. --- .github/workflows/main.yml | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 018ac064ce..5611c7016d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -76,6 +76,14 @@ jobs: image: ${{ matrix.platform.container_image || '' }} steps: + - name: Checkout RoadRunner + if: matrix.platform.os_type == 'manylinux' + uses: actions/checkout@v3 + + - name: Checkout RoadRunner + if: matrix.platform.os_type != 'manylinux' + uses: actions/checkout@v4 + - name: Setup python versions run: | echo "python_v1=3.9" >> $GITHUB_ENV @@ -101,6 +109,7 @@ jobs: if: matrix.platform.build_python == 'ON' && matrix.platform.os_type == 'manylinux' shell: bash run: | + yum install -y wget wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh bash Miniconda3-latest-Linux-x86_64.sh -b -p /Miniconda3 @@ -129,14 +138,6 @@ jobs: python${{ env.python_v4 }} -m pip install -r requirements.txt fi - - name: Checkout RoadRunner - if: matrix.platform.os_type == 'manylinux' - uses: actions/checkout@v3 - - - name: Checkout RoadRunner - if: matrix.platform.os_type != 'manylinux' - uses: actions/checkout@v4 - - name: Set MSVC as the default compiler on Windows if: matrix.platform.os_type == 'windows' uses: ilammy/msvc-dev-cmd@v1.12.1 From 6ae6fbfa80ed54c3548da612b2f7ea13426bab85 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 12:46:06 -0700 Subject: [PATCH 06/77] Windows powershell has different syntax. --- .github/workflows/main.yml | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5611c7016d..570478a399 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,47 +20,56 @@ jobs: os_name: macos-11 build_type: Release build_python: ON + write_to_env: ">> $GITHUB_ENV" - name: macos-11-debug os_type: macos os_name: macos-11 build_type: Debug build_python: OFF + write_to_env: ">> $GITHUB_ENV" - name: macos-latest-release os_type: macos os_name: macos-latest build_type: Release build_python: ON + write_to_env: ">> $GITHUB_ENV" - name: macos-latest-debug os_type: macos os_name: macos-latest build_type: Debug build_python: OFF + write_to_env: ">> $GITHUB_ENV" - name: ubuntu-latest-release os_type: ubuntu os_name: ubuntu-latest build_type: Release build_python: ON + write_to_env: ">> $GITHUB_ENV" - name: ubuntu-latest-debug os_type: ubuntu os_name: ubuntu-latest build_type: Debug build_python: OFF + write_to_env: ">> $GITHUB_ENV" - name: windows-latest-release os_type: windows os_name: windows-latest build_type: Release build_python: ON + write_to_env: "| Out-File -FilePath $env:GITHUB_ENV -Append" - name: windows-latest-debug os_type: windows os_name: windows-latest build_type: Debug build_python: OFF + write_to_env: "| Out-File -FilePath $env:GITHUB_ENV -Append" - name: manylinux2014-release os_type: manylinux os_name: ubuntu-latest container_image: quay.io/pypa/manylinux2014_x86_64 build_type: Release build_python: ON + write_to_env: ">> $GITHUB_ENV" libroadrunner_deps_owner: [ "sys-bio" ] libroadrunner_deps_repo: [ "libroadrunner-deps" ] libroadrunner_deps_name: [ "libroadrunner-deps" ] @@ -76,6 +85,17 @@ jobs: image: ${{ matrix.platform.container_image || '' }} steps: + - name: Setup python versions + run: | + echo "python_v1=3.9" ${{ matrix.platform.s }} + echo "python_v2=3.10" ${{ matrix.platform.write_to_env }} + echo "python_v3=3.11" ${{ matrix.platform.write_to_env }} + echo "python_v4=3.12" ${{ matrix.platform.write_to_env }} + echo "python_v1_name=39" ${{ matrix.platform.write_to_env }} + echo "python_v2_name=310" ${{ matrix.platform.write_to_env }} + echo "python_v3_name=311" ${{ matrix.platform.write_to_env }} + echo "python_v4_name=312" ${{ matrix.platform.write_to_env }} + - name: Checkout RoadRunner if: matrix.platform.os_type == 'manylinux' uses: actions/checkout@v3 @@ -84,17 +104,6 @@ jobs: if: matrix.platform.os_type != 'manylinux' uses: actions/checkout@v4 - - name: Setup python versions - run: | - echo "python_v1=3.9" >> $GITHUB_ENV - echo "python_v2=3.10" >> $GITHUB_ENV - echo "python_v3=3.11" >> $GITHUB_ENV - echo "python_v4=3.12" >> $GITHUB_ENV - echo "python_v1_name=39" >> $GITHUB_ENV - echo "python_v2_name=310" >> $GITHUB_ENV - echo "python_v3_name=311" >> $GITHUB_ENV - echo "python_v4_name=312" >> $GITHUB_ENV - - name: Setup Python for non-Manylinux platforms if: matrix.platform.build_python == 'ON' && matrix.platform.os_type != 'manylinux' uses: actions/setup-python@v4 @@ -119,7 +128,7 @@ jobs: /Miniconda3/bin/conda create -y --name ${{ env.python_v4_name }} python=${{ env.python_v4 }} /Miniconda3/bin/conda init && bash ~/.bashrc && . ~/.bashrc cd ${RUNNER_WORKSPACE} - sed -i 's/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g' configure + # sed -i 's/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g' configure - name: Install Python dependencies if: matrix.platform.build_python == 'ON' @@ -378,7 +387,7 @@ jobs: - name: Workaround actions/upload-artifact#176 run: | - echo "artifacts_root=$(realpath ..)" >> $GITHUB_ENV + echo "artifacts_root=$(realpath ..)" ${{ matrix.platform.write_to_env }} - name: Set artifacts path and name shell: bash From c25d81bbc19a3fff3e0eca5eddda2f4e53c2ae7a Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 12:47:23 -0700 Subject: [PATCH 07/77] Fix typo. --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 570478a399..943cbdbd2d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -87,7 +87,7 @@ jobs: steps: - name: Setup python versions run: | - echo "python_v1=3.9" ${{ matrix.platform.s }} + echo "python_v1=3.9" ${{ matrix.platform.write_to_env }} echo "python_v2=3.10" ${{ matrix.platform.write_to_env }} echo "python_v3=3.11" ${{ matrix.platform.write_to_env }} echo "python_v4=3.12" ${{ matrix.platform.write_to_env }} From 4b12ffafb61f101300e73fb14d09db9593104421 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 12:50:13 -0700 Subject: [PATCH 08/77] Maybe this is how different pythons are installed on windows? --- .github/workflows/main.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 943cbdbd2d..d709d4db9d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -140,6 +140,11 @@ jobs: /Miniconda3/envs/${{ env.python_v2_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt + elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then + python${{ env.python_v1_name }} -m pip install -r requirements.txt + python${{ env.python_v2_name }} -m pip install -r requirements.txt + python${{ env.python_v3_name }} -m pip install -r requirements.txt + python${{ env.python_v4_name }} -m pip install -r requirements.txt else python${{ env.python_v1 }} -m pip install -r requirements.txt python${{ env.python_v2 }} -m pip install -r requirements.txt From 5739b35cfa2b2a4d05862c70ceb524e6103d8ff8 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 12:57:51 -0700 Subject: [PATCH 09/77] Try to find python from multiple pythons on windows. --- .github/workflows/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d709d4db9d..a465ec5a49 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -107,6 +107,7 @@ jobs: - name: Setup Python for non-Manylinux platforms if: matrix.platform.build_python == 'ON' && matrix.platform.os_type != 'manylinux' uses: actions/setup-python@v4 + id: four_pythons with: python-version: | ${{ env.python_v1 }} @@ -141,7 +142,7 @@ jobs: /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then - python${{ env.python_v1_name }} -m pip install -r requirements.txt + ${{ steps.four_pythons.outputs.python-path }}python -m pip install -r requirements.txt python${{ env.python_v2_name }} -m pip install -r requirements.txt python${{ env.python_v3_name }} -m pip install -r requirements.txt python${{ env.python_v4_name }} -m pip install -r requirements.txt From 4960b0ff8b630adb3af083ddbcb7e5a8333a71a1 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 13:04:52 -0700 Subject: [PATCH 10/77] More exploration of python environment variables. --- .github/workflows/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a465ec5a49..c18e577276 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -142,7 +142,8 @@ jobs: /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then - ${{ steps.four_pythons.outputs.python-path }}python -m pip install -r requirements.txt + echo "${{ steps.four_pythons.outputs }}" + ${{ env.pythonLocation }}python -m pip install -r requirements.txt python${{ env.python_v2_name }} -m pip install -r requirements.txt python${{ env.python_v3_name }} -m pip install -r requirements.txt python${{ env.python_v4_name }} -m pip install -r requirements.txt From c4e4b856f9e87f3955de39e0237ce4bc8521e94e Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 13:18:06 -0700 Subject: [PATCH 11/77] Will work on Windows if relative paths are OK. --- .github/workflows/main.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c18e577276..b91cba535e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -142,11 +142,10 @@ jobs: /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then - echo "${{ steps.four_pythons.outputs }}" - ${{ env.pythonLocation }}python -m pip install -r requirements.txt - python${{ env.python_v2_name }} -m pip install -r requirements.txt - python${{ env.python_v3_name }} -m pip install -r requirements.txt - python${{ env.python_v4_name }} -m pip install -r requirements.txt + ${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python -m pip install -r requirements.txt + ${{ env.pythonLocation }}\..\..\${{ env.python_v2 }}*\*\python -m pip install -r requirements.txt + ${{ env.pythonLocation }}\..\..\${{ env.python_v3 }}*\*\python -m pip install -r requirements.txt + ${{ env.pythonLocation }}\..\..\${{ env.python_v4 }}*\*\python -m pip install -r requirements.txt else python${{ env.python_v1 }} -m pip install -r requirements.txt python${{ env.python_v2 }} -m pip install -r requirements.txt From 990b38f838bb684cbf8a253939edccd202e40991 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 13:22:13 -0700 Subject: [PATCH 12/77] Try another format. --- .github/workflows/main.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b91cba535e..57c1aee2e5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -142,10 +142,11 @@ jobs: /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then - ${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python -m pip install -r requirements.txt - ${{ env.pythonLocation }}\..\..\${{ env.python_v2 }}*\*\python -m pip install -r requirements.txt - ${{ env.pythonLocation }}\..\..\${{ env.python_v3 }}*\*\python -m pip install -r requirements.txt - ${{ env.pythonLocation }}\..\..\${{ env.python_v4 }}*\*\python -m pip install -r requirements.txt + ${{ env.pythonLocation }}\python.exe -m pip install -r requirements.txt + ${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python.exe -m pip install -r requirements.txt + ${{ env.pythonLocation }}\..\..\${{ env.python_v2 }}*\*\python.exe -m pip install -r requirements.txt + ${{ env.pythonLocation }}\..\..\${{ env.python_v3 }}*\*\python.exe -m pip install -r requirements.txt + ${{ env.pythonLocation }}\..\..\${{ env.python_v4 }}*\*\python.exe -m pip install -r requirements.txt else python${{ env.python_v1 }} -m pip install -r requirements.txt python${{ env.python_v2 }} -m pip install -r requirements.txt From 519fe84824d8187ba2ac2cf24f63f449e574bf04 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 13:25:08 -0700 Subject: [PATCH 13/77] Try reversing slashes in directory. --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 57c1aee2e5..5cb5802bde 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -142,7 +142,7 @@ jobs: /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then - ${{ env.pythonLocation }}\python.exe -m pip install -r requirements.txt + C:/hostedtoolcache/windows/Python/3.12.3/x64/python.exe -m pip install -r requirements.txt ${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python.exe -m pip install -r requirements.txt ${{ env.pythonLocation }}\..\..\${{ env.python_v2 }}*\*\python.exe -m pip install -r requirements.txt ${{ env.pythonLocation }}\..\..\${{ env.python_v3 }}*\*\python.exe -m pip install -r requirements.txt From 483ec346bdcde659932db4899ca540b23747d984 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 13:29:08 -0700 Subject: [PATCH 14/77] Try single quotes! --- .github/workflows/main.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5cb5802bde..2743c6cb1a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -142,11 +142,11 @@ jobs: /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then - C:/hostedtoolcache/windows/Python/3.12.3/x64/python.exe -m pip install -r requirements.txt - ${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python.exe -m pip install -r requirements.txt - ${{ env.pythonLocation }}\..\..\${{ env.python_v2 }}*\*\python.exe -m pip install -r requirements.txt - ${{ env.pythonLocation }}\..\..\${{ env.python_v3 }}*\*\python.exe -m pip install -r requirements.txt - ${{ env.pythonLocation }}\..\..\${{ env.python_v4 }}*\*\python.exe -m pip install -r requirements.txt + # C:/hostedtoolcache/windows/Python/3.12.3/x64/python.exe -m pip install -r requirements.txt + '${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python.exe -m pip install -r requirements.txt' + '${{ env.pythonLocation }}\..\..\${{ env.python_v2 }}*\*\python.exe -m pip install -r requirements.txt' + '${{ env.pythonLocation }}\..\..\${{ env.python_v3 }}*\*\python.exe -m pip install -r requirements.txt' + '${{ env.pythonLocation }}\..\..\${{ env.python_v4 }}*\*\python.exe -m pip install -r requirements.txt' else python${{ env.python_v1 }} -m pip install -r requirements.txt python${{ env.python_v2 }} -m pip install -r requirements.txt From d386ab63b3d55cc3f40fd79c6e9be5f5975051b0 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 13:31:05 -0700 Subject: [PATCH 15/77] Check to see if relative directories are the problem. --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2743c6cb1a..186039c817 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -143,6 +143,7 @@ jobs: /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then # C:/hostedtoolcache/windows/Python/3.12.3/x64/python.exe -m pip install -r requirements.txt + '${{ env.pythonLocation }}\python.exe -m pip install -r requirements.txt' '${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python.exe -m pip install -r requirements.txt' '${{ env.pythonLocation }}\..\..\${{ env.python_v2 }}*\*\python.exe -m pip install -r requirements.txt' '${{ env.pythonLocation }}\..\..\${{ env.python_v3 }}*\*\python.exe -m pip install -r requirements.txt' From 2b7808f7ce0549101454bed7afde7bad5e42a6ca Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 13:33:07 -0700 Subject: [PATCH 16/77] Can it find requirements? --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 186039c817..d81bd5392b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -143,6 +143,7 @@ jobs: /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then # C:/hostedtoolcache/windows/Python/3.12.3/x64/python.exe -m pip install -r requirements.txt + '${{ env.pythonLocation }}\python.exe -V' '${{ env.pythonLocation }}\python.exe -m pip install -r requirements.txt' '${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python.exe -m pip install -r requirements.txt' '${{ env.pythonLocation }}\..\..\${{ env.python_v2 }}*\*\python.exe -m pip install -r requirements.txt' From 86607f04d847f59043e982b2eebeb81225de4c86 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 13:35:42 -0700 Subject: [PATCH 17/77] Can we find the directory at all? --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d81bd5392b..64ce6e59cd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -143,7 +143,7 @@ jobs: /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then # C:/hostedtoolcache/windows/Python/3.12.3/x64/python.exe -m pip install -r requirements.txt - '${{ env.pythonLocation }}\python.exe -V' + 'ls ${{ env.pythonLocation }}' '${{ env.pythonLocation }}\python.exe -m pip install -r requirements.txt' '${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python.exe -m pip install -r requirements.txt' '${{ env.pythonLocation }}\..\..\${{ env.python_v2 }}*\*\python.exe -m pip install -r requirements.txt' From 3abadc0ac4438553a916274b757c2e134b304ea9 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 13:40:58 -0700 Subject: [PATCH 18/77] Try solution from https://stackoverflow.com/questions/66450348/need-to-convert-back-slashes-to-forward-slashes-in-github-action-work-flow --- .github/workflows/main.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 64ce6e59cd..975858ce64 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -142,8 +142,11 @@ jobs: /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then + $temp = ${DATA_ROOT} + $pattern = '[\\]' + $temp = '${{ env.pythonLocation }}' -replace $pattern, '/' # C:/hostedtoolcache/windows/Python/3.12.3/x64/python.exe -m pip install -r requirements.txt - 'ls ${{ env.pythonLocation }}' + ls $temp '${{ env.pythonLocation }}\python.exe -m pip install -r requirements.txt' '${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python.exe -m pip install -r requirements.txt' '${{ env.pythonLocation }}\..\..\${{ env.python_v2 }}*\*\python.exe -m pip install -r requirements.txt' From 3a95dd3db11bb4fae686f016ce27a2fcf53e1431 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 13:42:30 -0700 Subject: [PATCH 19/77] Fix typo. --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 975858ce64..e294313e77 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -142,7 +142,6 @@ jobs: /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then - $temp = ${DATA_ROOT} $pattern = '[\\]' $temp = '${{ env.pythonLocation }}' -replace $pattern, '/' # C:/hostedtoolcache/windows/Python/3.12.3/x64/python.exe -m pip install -r requirements.txt From 06ce171a07d6d0cbb44a1e82f256ee2877224215 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 13:56:01 -0700 Subject: [PATCH 20/77] More experiments. --- .github/workflows/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e294313e77..1e91305f00 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -142,9 +142,10 @@ jobs: /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then + echo "Test." $pattern = '[\\]' $temp = '${{ env.pythonLocation }}' -replace $pattern, '/' - # C:/hostedtoolcache/windows/Python/3.12.3/x64/python.exe -m pip install -r requirements.txt + echo "$temp" ls $temp '${{ env.pythonLocation }}\python.exe -m pip install -r requirements.txt' '${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python.exe -m pip install -r requirements.txt' From df9874eae3390e18bbbdc7002959ec19819fac90 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 14:01:05 -0700 Subject: [PATCH 21/77] Gah, was setting bash explicitly. --- .github/workflows/main.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1e91305f00..42a794f576 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -133,7 +133,6 @@ jobs: - name: Install Python dependencies if: matrix.platform.build_python == 'ON' - shell: bash run: | cd ${RUNNER_WORKSPACE}/roadrunner if [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then From 33c3bdd43f00a7fcd3e9eaff2b965d41e785c19b Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 14:03:46 -0700 Subject: [PATCH 22/77] Split python install into Windows and non-. --- .github/workflows/main.yml | 30 +++++++++++++++++------------- 1 file changed, 17 insertions(+), 13 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 42a794f576..4d462630e7 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -131,8 +131,8 @@ jobs: /Miniconda3/bin/conda init && bash ~/.bashrc && . ~/.bashrc cd ${RUNNER_WORKSPACE} # sed -i 's/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g' configure - - name: Install Python dependencies - if: matrix.platform.build_python == 'ON' + - name: Install Python dependencies, non-Windows + if: matrix.platform.build_python == 'ON' && matrix.platform.os_type != 'windows' run: | cd ${RUNNER_WORKSPACE}/roadrunner if [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then @@ -140,17 +140,6 @@ jobs: /Miniconda3/envs/${{ env.python_v2_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt - elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then - echo "Test." - $pattern = '[\\]' - $temp = '${{ env.pythonLocation }}' -replace $pattern, '/' - echo "$temp" - ls $temp - '${{ env.pythonLocation }}\python.exe -m pip install -r requirements.txt' - '${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python.exe -m pip install -r requirements.txt' - '${{ env.pythonLocation }}\..\..\${{ env.python_v2 }}*\*\python.exe -m pip install -r requirements.txt' - '${{ env.pythonLocation }}\..\..\${{ env.python_v3 }}*\*\python.exe -m pip install -r requirements.txt' - '${{ env.pythonLocation }}\..\..\${{ env.python_v4 }}*\*\python.exe -m pip install -r requirements.txt' else python${{ env.python_v1 }} -m pip install -r requirements.txt python${{ env.python_v2 }} -m pip install -r requirements.txt @@ -158,6 +147,21 @@ jobs: python${{ env.python_v4 }} -m pip install -r requirements.txt fi + - name: Install Python dependencies, Windows + if: matrix.platform.build_python == 'ON' && matrix.platform.os_type == 'windows' + run: | + cd ${RUNNER_WORKSPACE}/roadrunner + echo "Test." + $pattern = '[\\]' + $temp = '${{ env.pythonLocation }}' -replace $pattern, '/' + echo "$temp" + ls $temp + '${{ env.pythonLocation }}\python.exe -m pip install -r requirements.txt' + '${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python.exe -m pip install -r requirements.txt' + '${{ env.pythonLocation }}\..\..\${{ env.python_v2 }}*\*\python.exe -m pip install -r requirements.txt' + '${{ env.pythonLocation }}\..\..\${{ env.python_v3 }}*\*\python.exe -m pip install -r requirements.txt' + '${{ env.pythonLocation }}\..\..\${{ env.python_v4 }}*\*\python.exe -m pip install -r requirements.txt' + - name: Set MSVC as the default compiler on Windows if: matrix.platform.os_type == 'windows' uses: ilammy/msvc-dev-cmd@v1.12.1 From c103d05685dc5b4963c976355e894d4e5522d68f Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 14:28:15 -0700 Subject: [PATCH 23/77] Go back to trying to replace slashes, but in powershell. --- .github/workflows/main.yml | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4d462630e7..8b4634f509 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -131,8 +131,17 @@ jobs: /Miniconda3/bin/conda init && bash ~/.bashrc && . ~/.bashrc cd ${RUNNER_WORKSPACE} # sed -i 's/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g' configure - - name: Install Python dependencies, non-Windows - if: matrix.platform.build_python == 'ON' && matrix.platform.os_type != 'windows' + - name: Setup Windows Python path + if: matrix.platform.build_python == 'ON' && matrix.platform.os_type == 'manylinux' + run: | + $pattern = '[\\]' + $temp = '${{ env.pythonLocation }}' -replace $pattern, '/' + echo "$temp" + ls $temp + echo "pythonWinLocation=$temp" ${{ matrix.platform.write_to_env }} + + - name: Install Python dependencies + if: matrix.platform.build_python == 'ON' run: | cd ${RUNNER_WORKSPACE}/roadrunner if [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then @@ -140,6 +149,13 @@ jobs: /Miniconda3/envs/${{ env.python_v2_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt + elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then + echo "Test." + '${{ env.pythonLocation }}\python.exe -m pip install -r requirements.txt' + '${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python.exe -m pip install -r requirements.txt' + '${{ env.pythonLocation }}\..\..\${{ env.python_v2 }}*\*\python.exe -m pip install -r requirements.txt' + '${{ env.pythonLocation }}\..\..\${{ env.python_v3 }}*\*\python.exe -m pip install -r requirements.txt' + '${{ env.pythonLocation }}\..\..\${{ env.python_v4 }}*\*\python.exe -m pip install -r requirements.txt' else python${{ env.python_v1 }} -m pip install -r requirements.txt python${{ env.python_v2 }} -m pip install -r requirements.txt @@ -147,21 +163,6 @@ jobs: python${{ env.python_v4 }} -m pip install -r requirements.txt fi - - name: Install Python dependencies, Windows - if: matrix.platform.build_python == 'ON' && matrix.platform.os_type == 'windows' - run: | - cd ${RUNNER_WORKSPACE}/roadrunner - echo "Test." - $pattern = '[\\]' - $temp = '${{ env.pythonLocation }}' -replace $pattern, '/' - echo "$temp" - ls $temp - '${{ env.pythonLocation }}\python.exe -m pip install -r requirements.txt' - '${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python.exe -m pip install -r requirements.txt' - '${{ env.pythonLocation }}\..\..\${{ env.python_v2 }}*\*\python.exe -m pip install -r requirements.txt' - '${{ env.pythonLocation }}\..\..\${{ env.python_v3 }}*\*\python.exe -m pip install -r requirements.txt' - '${{ env.pythonLocation }}\..\..\${{ env.python_v4 }}*\*\python.exe -m pip install -r requirements.txt' - - name: Set MSVC as the default compiler on Windows if: matrix.platform.os_type == 'windows' uses: ilammy/msvc-dev-cmd@v1.12.1 From cefc06654de031285d14c9203796ed8f66c9dff8 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 14:29:32 -0700 Subject: [PATCH 24/77] Windows, not manylinux. --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8b4634f509..d790242f8f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -132,7 +132,7 @@ jobs: # sed -i 's/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g' configure - name: Setup Windows Python path - if: matrix.platform.build_python == 'ON' && matrix.platform.os_type == 'manylinux' + if: matrix.platform.build_python == 'ON' && matrix.platform.os_type == 'windows' run: | $pattern = '[\\]' $temp = '${{ env.pythonLocation }}' -replace $pattern, '/' From cc33408fe5a042427e1e953e419584181a4af762 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 14:32:31 -0700 Subject: [PATCH 25/77] Closer... --- .github/workflows/main.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d790242f8f..9f70b52899 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -142,6 +142,7 @@ jobs: - name: Install Python dependencies if: matrix.platform.build_python == 'ON' + shell: bash run: | cd ${RUNNER_WORKSPACE}/roadrunner if [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then @@ -150,12 +151,11 @@ jobs: /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then - echo "Test." - '${{ env.pythonLocation }}\python.exe -m pip install -r requirements.txt' - '${{ env.pythonLocation }}\..\..\${{ env.python_v1 }}*\*\python.exe -m pip install -r requirements.txt' - '${{ env.pythonLocation }}\..\..\${{ env.python_v2 }}*\*\python.exe -m pip install -r requirements.txt' - '${{ env.pythonLocation }}\..\..\${{ env.python_v3 }}*\*\python.exe -m pip install -r requirements.txt' - '${{ env.pythonLocation }}\..\..\${{ env.python_v4 }}*\*\python.exe -m pip install -r requirements.txt' + '${{ env.pythonWinLocation }}/python.exe -m pip install -r requirements.txt' + '${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/*/python.exe -m pip install -r requirements.txt' + '${{ env.pythonWinLocation }}/../../${{ env.python_v2 }}*/*/python.exe -m pip install -r requirements.txt' + '${{ env.pythonWinLocation }}/../../${{ env.python_v3 }}*/*/python.exe -m pip install -r requirements.txt' + '${{ env.pythonWinLocation }}/../../${{ env.python_v4 }}*/*/python.exe -m pip install -r requirements.txt' else python${{ env.python_v1 }} -m pip install -r requirements.txt python${{ env.python_v2 }} -m pip install -r requirements.txt From 2bcad6d5dfe0d1f0a5fecb73d702acecd5c18017 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 14:35:22 -0700 Subject: [PATCH 26/77] More experiments. --- .github/workflows/main.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9f70b52899..85337e7555 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -151,6 +151,8 @@ jobs: /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then + ls ${{ env.pythonWinLocation }} + ${{ env.pythonWinLocation }}/python.exe -V '${{ env.pythonWinLocation }}/python.exe -m pip install -r requirements.txt' '${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/*/python.exe -m pip install -r requirements.txt' '${{ env.pythonWinLocation }}/../../${{ env.python_v2 }}*/*/python.exe -m pip install -r requirements.txt' From c9381ceecfdb903b33c86db6e7649453bbb889ba Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 14:41:16 -0700 Subject: [PATCH 27/77] Where's the requirements file? --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 85337e7555..cf5014ba52 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -153,6 +153,7 @@ jobs: elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then ls ${{ env.pythonWinLocation }} ${{ env.pythonWinLocation }}/python.exe -V + ls '${{ env.pythonWinLocation }}/python.exe -m pip install -r requirements.txt' '${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/*/python.exe -m pip install -r requirements.txt' '${{ env.pythonWinLocation }}/../../${{ env.python_v2 }}*/*/python.exe -m pip install -r requirements.txt' From 30a37ea186a9401695dc5ff97ea2b9be2902b6e6 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 14:58:07 -0700 Subject: [PATCH 28/77] Can we run upgrade directly? --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cf5014ba52..5f49a435ce 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -154,6 +154,7 @@ jobs: ls ${{ env.pythonWinLocation }} ${{ env.pythonWinLocation }}/python.exe -V ls + '${{ env.pythonWinLocation }}/python.exe -m pip install --upgrade pip '${{ env.pythonWinLocation }}/python.exe -m pip install -r requirements.txt' '${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/*/python.exe -m pip install -r requirements.txt' '${{ env.pythonWinLocation }}/../../${{ env.python_v2 }}*/*/python.exe -m pip install -r requirements.txt' From c94df2bbf074a24144a2b360b2ed233d638b0871 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 14:59:17 -0700 Subject: [PATCH 29/77] Fix 's. --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5f49a435ce..da6df5403b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -154,8 +154,8 @@ jobs: ls ${{ env.pythonWinLocation }} ${{ env.pythonWinLocation }}/python.exe -V ls - '${{ env.pythonWinLocation }}/python.exe -m pip install --upgrade pip - '${{ env.pythonWinLocation }}/python.exe -m pip install -r requirements.txt' + ${{ env.pythonWinLocation }}/python.exe -m pip install --upgrade pip + ${{ env.pythonWinLocation }}/python.exe -m pip install -r requirements.txt '${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/*/python.exe -m pip install -r requirements.txt' '${{ env.pythonWinLocation }}/../../${{ env.python_v2 }}*/*/python.exe -m pip install -r requirements.txt' '${{ env.pythonWinLocation }}/../../${{ env.python_v3 }}*/*/python.exe -m pip install -r requirements.txt' From 2f3a29146b26b5cd8ffd84b088527f04ae379ebf Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 15:01:34 -0700 Subject: [PATCH 30/77] Add explicit 'current directory' --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index da6df5403b..18383a8653 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -155,7 +155,7 @@ jobs: ${{ env.pythonWinLocation }}/python.exe -V ls ${{ env.pythonWinLocation }}/python.exe -m pip install --upgrade pip - ${{ env.pythonWinLocation }}/python.exe -m pip install -r requirements.txt + ${{ env.pythonWinLocation }}/python.exe -m pip install -r ./requirements.txt '${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/*/python.exe -m pip install -r requirements.txt' '${{ env.pythonWinLocation }}/../../${{ env.python_v2 }}*/*/python.exe -m pip install -r requirements.txt' '${{ env.pythonWinLocation }}/../../${{ env.python_v3 }}*/*/python.exe -m pip install -r requirements.txt' From 403e88a64358597e76c9a02bd9ae733663e89022 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 15:03:41 -0700 Subject: [PATCH 31/77] Add explicit current dir to everything! --- .github/workflows/main.yml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 18383a8653..74c1b8591d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -151,15 +151,12 @@ jobs: /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then - ls ${{ env.pythonWinLocation }} - ${{ env.pythonWinLocation }}/python.exe -V - ls ${{ env.pythonWinLocation }}/python.exe -m pip install --upgrade pip ${{ env.pythonWinLocation }}/python.exe -m pip install -r ./requirements.txt - '${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/*/python.exe -m pip install -r requirements.txt' - '${{ env.pythonWinLocation }}/../../${{ env.python_v2 }}*/*/python.exe -m pip install -r requirements.txt' - '${{ env.pythonWinLocation }}/../../${{ env.python_v3 }}*/*/python.exe -m pip install -r requirements.txt' - '${{ env.pythonWinLocation }}/../../${{ env.python_v4 }}*/*/python.exe -m pip install -r requirements.txt' + '${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/*/python.exe -m pip install -r ./requirements.txt' + '${{ env.pythonWinLocation }}/../../${{ env.python_v2 }}*/*/python.exe -m pip install -r ./requirements.txt' + '${{ env.pythonWinLocation }}/../../${{ env.python_v3 }}*/*/python.exe -m pip install -r ./requirements.txt' + '${{ env.pythonWinLocation }}/../../${{ env.python_v4 }}*/*/python.exe -m pip install -r ./requirements.txt' else python${{ env.python_v1 }} -m pip install -r requirements.txt python${{ env.python_v2 }} -m pip install -r requirements.txt From 866275c884a36ec0719a7b7d39b47d37b9fb2bb2 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 15:19:50 -0700 Subject: [PATCH 32/77] Relative directories, or something else? --- .github/workflows/main.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 74c1b8591d..b2ee98ecd8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -153,10 +153,11 @@ jobs: elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then ${{ env.pythonWinLocation }}/python.exe -m pip install --upgrade pip ${{ env.pythonWinLocation }}/python.exe -m pip install -r ./requirements.txt - '${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/*/python.exe -m pip install -r ./requirements.txt' - '${{ env.pythonWinLocation }}/../../${{ env.python_v2 }}*/*/python.exe -m pip install -r ./requirements.txt' - '${{ env.pythonWinLocation }}/../../${{ env.python_v3 }}*/*/python.exe -m pip install -r ./requirements.txt' - '${{ env.pythonWinLocation }}/../../${{ env.python_v4 }}*/*/python.exe -m pip install -r ./requirements.txt' + ${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/*/python.exe -V + ${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/*/python.exe -m pip install -r ./requirements.txt + ${{ env.pythonWinLocation }}/../../${{ env.python_v2 }}*/*/python.exe -m pip install -r ./requirements.txt + ${{ env.pythonWinLocation }}/../../${{ env.python_v3 }}*/*/python.exe -m pip install -r ./requirements.txt + ${{ env.pythonWinLocation }}/../../${{ env.python_v4 }}*/*/python.exe -m pip install -r ./requirements.txt else python${{ env.python_v1 }} -m pip install -r requirements.txt python${{ env.python_v2 }} -m pip install -r requirements.txt From 758f6748ec08888cff2c4598a2f1436c547ec730 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 15:25:28 -0700 Subject: [PATCH 33/77] The executable itself is wrong?? --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b2ee98ecd8..316abe1ff0 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -153,6 +153,7 @@ jobs: elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then ${{ env.pythonWinLocation }}/python.exe -m pip install --upgrade pip ${{ env.pythonWinLocation }}/python.exe -m pip install -r ./requirements.txt + C:/hostedtoolcache/windows/Python/3.9.13/x86/python.exe -V ${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/*/python.exe -V ${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/*/python.exe -m pip install -r ./requirements.txt ${{ env.pythonWinLocation }}/../../${{ env.python_v2 }}*/*/python.exe -m pip install -r ./requirements.txt From 83df2ed4ca34e06e1df5fdaa0746ab4a7337708f Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 15:38:45 -0700 Subject: [PATCH 34/77] First pass at setting up explicit windows python directories. --- .github/workflows/main.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 316abe1ff0..51569b7ff6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -131,9 +131,16 @@ jobs: /Miniconda3/bin/conda init && bash ~/.bashrc && . ~/.bashrc cd ${RUNNER_WORKSPACE} # sed -i 's/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g' configure - - name: Setup Windows Python path + - name: Setup Windows Python paths if: matrix.platform.build_python == 'ON' && matrix.platform.os_type == 'windows' run: | + $python_win_root = $(${{ env.pythonLocation }} ../..) + echo "$python_win_root" + cd $python_win_root + cd ${{ env.python_v1 }}*/x*/ + $pythonWinExecutable = $(realpath) + echo "$pythonWinExecutable" + $pattern = '[\\]' $temp = '${{ env.pythonLocation }}' -replace $pattern, '/' echo "$temp" From a4c662e62f40e064be2059a16922e5798a172add Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 15:41:21 -0700 Subject: [PATCH 35/77] Different syntax. --- .github/workflows/main.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 51569b7ff6..0bacb43ac3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -134,12 +134,13 @@ jobs: - name: Setup Windows Python paths if: matrix.platform.build_python == 'ON' && matrix.platform.os_type == 'windows' run: | - $python_win_root = $(${{ env.pythonLocation }} ../..) + cd ${{ env.pythonLocation }} + cd ../.. + $python_win_root = $(realpath) echo "$python_win_root" - cd $python_win_root cd ${{ env.python_v1 }}*/x*/ $pythonWinExecutable = $(realpath) - echo "$pythonWinExecutable" + echo $pythonWinExecutable $pattern = '[\\]' $temp = '${{ env.pythonLocation }}' -replace $pattern, '/' From 78ad8166aeabe466985dfa1e7338c4a6fb7fb22c Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 15:44:08 -0700 Subject: [PATCH 36/77] More guesses about file system. --- .github/workflows/main.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 0bacb43ac3..916fa6cfdf 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -136,10 +136,12 @@ jobs: run: | cd ${{ env.pythonLocation }} cd ../.. - $python_win_root = $(realpath) + $python_win_root = $(realpath .) echo "$python_win_root" - cd ${{ env.python_v1 }}*/x*/ - $pythonWinExecutable = $(realpath) + cd ${{ env.python_v1 }}*/ + ls + cd x?? + $pythonWinExecutable = $(realpath .) echo $pythonWinExecutable $pattern = '[\\]' From d5c053f4c4e7b55a1c7ea140e08b02ecc6da1ce9 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 17:33:43 -0700 Subject: [PATCH 37/77] Set up python_v1_exe and python_v1_dir variables. --- .github/workflows/main.yml | 58 +++++++++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 16 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 916fa6cfdf..17807d23ad 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -131,24 +131,50 @@ jobs: /Miniconda3/bin/conda init && bash ~/.bashrc && . ~/.bashrc cd ${RUNNER_WORKSPACE} # sed -i 's/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g' configure + echo "python_v1_exe=/Miniconda3/envs/${{ env.python_v1_name }}/bin/python" ${{ matrix.platform.write_to_env }} + echo "python_v1_dir=/Miniconda3/envs/${{ env.python_v1_name }}/bin" ${{ matrix.platform.write_to_env }} + - name: Setup Windows Python paths if: matrix.platform.build_python == 'ON' && matrix.platform.os_type == 'windows' run: | cd ${{ env.pythonLocation }} - cd ../.. - $python_win_root = $(realpath .) - echo "$python_win_root" - cd ${{ env.python_v1 }}*/ - ls - cd x?? + $pattern = '[\\]' + + cd ../../${{ env.python_v1 }}*/x64/ + $pythonWinExecutable = $(realpath .) + $pythonWinExecutable = $pythonWinExecutable -replace $pattern, '/' + echo "python_v1_exe=$pythonWinExecutable/python.exe" ${{ matrix.platform.write_to_env }} + echo "python_v1_dir=$pythonWinExecutable" ${{ matrix.platform.write_to_env }} + + cd ../../${{ env.python_v2 }}*/x64/ + $pythonWinExecutable = $(realpath .) + $pythonWinExecutable = $pythonWinExecutable -replace $pattern, '/' + echo "python_v1_exe=$pythonWinExecutable/python.exe" ${{ matrix.platform.write_to_env }} + echo "python_v1_dir=$pythonWinExecutable" ${{ matrix.platform.write_to_env }} + + cd ../../${{ env.python_v3 }}*/x64/ $pythonWinExecutable = $(realpath .) - echo $pythonWinExecutable + $pythonWinExecutable = $pythonWinExecutable -replace $pattern, '/' + echo "python_v1_exe=$pythonWinExecutable/python.exe" ${{ matrix.platform.write_to_env }} + echo "python_v1_dir=$pythonWinExecutable" ${{ matrix.platform.write_to_env }} + cd ../../${{ env.python_v4 }}*/x64/ + $pythonWinExecutable = $(realpath .) + $pythonWinExecutable = $pythonWinExecutable -replace $pattern, '/' + echo "python_v1_exe=$pythonWinExecutable/python.exe" ${{ matrix.platform.write_to_env }} + echo "python_v1_dir=$pythonWinExecutable" ${{ matrix.platform.write_to_env }} + + - name: Setup non-windows Python paths + if: matrix.platform.build_python == 'ON' && matrix.platform.os_type != 'windows' && matrix.platform.os_type != 'manylinux' + run: | + cd ${{ env.pythonLocation }} $pattern = '[\\]' - $temp = '${{ env.pythonLocation }}' -replace $pattern, '/' - echo "$temp" - ls $temp - echo "pythonWinLocation=$temp" ${{ matrix.platform.write_to_env }} + + ls ../../${{ env.python_v1 }}*/ + cd ../../${{ env.python_v1 }}*/x64/ + echo "python_v1_exe=$PWD/python${{ env.python_v1 }}" ${{ matrix.platform.write_to_env }} + echo "python_v1_dir=$PWD" ${{ matrix.platform.write_to_env }} + - name: Install Python dependencies if: matrix.platform.build_python == 'ON' @@ -164,11 +190,11 @@ jobs: ${{ env.pythonWinLocation }}/python.exe -m pip install --upgrade pip ${{ env.pythonWinLocation }}/python.exe -m pip install -r ./requirements.txt C:/hostedtoolcache/windows/Python/3.9.13/x86/python.exe -V - ${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/*/python.exe -V - ${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/*/python.exe -m pip install -r ./requirements.txt - ${{ env.pythonWinLocation }}/../../${{ env.python_v2 }}*/*/python.exe -m pip install -r ./requirements.txt - ${{ env.pythonWinLocation }}/../../${{ env.python_v3 }}*/*/python.exe -m pip install -r ./requirements.txt - ${{ env.pythonWinLocation }}/../../${{ env.python_v4 }}*/*/python.exe -m pip install -r ./requirements.txt + ${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/x64/python.exe -V + ${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/x64/python.exe -m pip install -r ./requirements.txt + ${{ env.pythonWinLocation }}/../../${{ env.python_v2 }}*/x64/python.exe -m pip install -r ./requirements.txt + ${{ env.pythonWinLocation }}/../../${{ env.python_v3 }}*/x64/python.exe -m pip install -r ./requirements.txt + ${{ env.pythonWinLocation }}/../../${{ env.python_v4 }}*/x64/python.exe -m pip install -r ./requirements.txt else python${{ env.python_v1 }} -m pip install -r requirements.txt python${{ env.python_v2 }} -m pip install -r requirements.txt From 8a5cd7073000c876d33466d0fdafad743f95d995 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 17:39:57 -0700 Subject: [PATCH 38/77] Fix some syntax. --- .github/workflows/main.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 17807d23ad..133b451e55 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -168,8 +168,6 @@ jobs: if: matrix.platform.build_python == 'ON' && matrix.platform.os_type != 'windows' && matrix.platform.os_type != 'manylinux' run: | cd ${{ env.pythonLocation }} - $pattern = '[\\]' - ls ../../${{ env.python_v1 }}*/ cd ../../${{ env.python_v1 }}*/x64/ echo "python_v1_exe=$PWD/python${{ env.python_v1 }}" ${{ matrix.platform.write_to_env }} @@ -187,8 +185,8 @@ jobs: /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then - ${{ env.pythonWinLocation }}/python.exe -m pip install --upgrade pip - ${{ env.pythonWinLocation }}/python.exe -m pip install -r ./requirements.txt + ${{ env.python_v1_exe }} -m pip install --upgrade pip + ${{ env.python_v1_exe }} -m pip install -r ./requirements.txt C:/hostedtoolcache/windows/Python/3.9.13/x86/python.exe -V ${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/x64/python.exe -V ${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/x64/python.exe -m pip install -r ./requirements.txt From bea7178357769ccb8b2bb4a8067abd60261bd09e Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 18:09:37 -0700 Subject: [PATCH 39/77] More python directory setting. --- .github/workflows/main.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 133b451e55..f04653cf75 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -149,27 +149,28 @@ jobs: cd ../../${{ env.python_v2 }}*/x64/ $pythonWinExecutable = $(realpath .) $pythonWinExecutable = $pythonWinExecutable -replace $pattern, '/' - echo "python_v1_exe=$pythonWinExecutable/python.exe" ${{ matrix.platform.write_to_env }} - echo "python_v1_dir=$pythonWinExecutable" ${{ matrix.platform.write_to_env }} + echo "python_v2_exe=$pythonWinExecutable/python.exe" ${{ matrix.platform.write_to_env }} + echo "python_v2_dir=$pythonWinExecutable" ${{ matrix.platform.write_to_env }} cd ../../${{ env.python_v3 }}*/x64/ $pythonWinExecutable = $(realpath .) $pythonWinExecutable = $pythonWinExecutable -replace $pattern, '/' - echo "python_v1_exe=$pythonWinExecutable/python.exe" ${{ matrix.platform.write_to_env }} - echo "python_v1_dir=$pythonWinExecutable" ${{ matrix.platform.write_to_env }} + echo "python_v3_exe=$pythonWinExecutable/python.exe" ${{ matrix.platform.write_to_env }} + echo "python_v3_dir=$pythonWinExecutable" ${{ matrix.platform.write_to_env }} cd ../../${{ env.python_v4 }}*/x64/ $pythonWinExecutable = $(realpath .) $pythonWinExecutable = $pythonWinExecutable -replace $pattern, '/' - echo "python_v1_exe=$pythonWinExecutable/python.exe" ${{ matrix.platform.write_to_env }} - echo "python_v1_dir=$pythonWinExecutable" ${{ matrix.platform.write_to_env }} + echo "python_v4_exe=$pythonWinExecutable/python.exe" ${{ matrix.platform.write_to_env }} + echo "python_v4_dir=$pythonWinExecutable" ${{ matrix.platform.write_to_env }} - name: Setup non-windows Python paths if: matrix.platform.build_python == 'ON' && matrix.platform.os_type != 'windows' && matrix.platform.os_type != 'manylinux' run: | cd ${{ env.pythonLocation }} + export py_lastdir="$(basename $PWD)" ls ../../${{ env.python_v1 }}*/ - cd ../../${{ env.python_v1 }}*/x64/ + cd ../../${{ env.python_v1 }}*/$py_lastdir/ echo "python_v1_exe=$PWD/python${{ env.python_v1 }}" ${{ matrix.platform.write_to_env }} echo "python_v1_dir=$PWD" ${{ matrix.platform.write_to_env }} From 591dcd46a7cfb4ef2d799915cfe370bb4142a55a Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 18:39:48 -0700 Subject: [PATCH 40/77] Almost have everything set up. --- .github/workflows/main.yml | 42 +++++++++++++++++++++++--------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f04653cf75..327af2c1c1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -169,11 +169,23 @@ jobs: run: | cd ${{ env.pythonLocation }} export py_lastdir="$(basename $PWD)" - ls ../../${{ env.python_v1 }}*/ + cd ../../${{ env.python_v1 }}*/$py_lastdir/ echo "python_v1_exe=$PWD/python${{ env.python_v1 }}" ${{ matrix.platform.write_to_env }} echo "python_v1_dir=$PWD" ${{ matrix.platform.write_to_env }} + cd ../../${{ env.python_v1 }}*/$py_lastdir/ + echo "python_v2_exe=$PWD/python${{ env.python_v1 }}" ${{ matrix.platform.write_to_env }} + echo "python_v2_dir=$PWD" ${{ matrix.platform.write_to_env }} + + cd ../../${{ env.python_v1 }}*/$py_lastdir/ + echo "python_v3_exe=$PWD/python${{ env.python_v1 }}" ${{ matrix.platform.write_to_env }} + echo "python_v3_dir=$PWD" ${{ matrix.platform.write_to_env }} + + cd ../../${{ env.python_v1 }}*/$py_lastdir/ + echo "python_v4_exe=$PWD/python${{ env.python_v1 }}" ${{ matrix.platform.write_to_env }} + echo "python_v4_dir=$PWD" ${{ matrix.platform.write_to_env }} + - name: Install Python dependencies if: matrix.platform.build_python == 'ON' @@ -181,24 +193,20 @@ jobs: run: | cd ${RUNNER_WORKSPACE}/roadrunner if [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - /Miniconda3/envs/${{ env.python_v1_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt - /Miniconda3/envs/${{ env.python_v2_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt - /Miniconda3/envs/${{ env.python_v3_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt - /Miniconda3/envs/${{ env.python_v4_name }}/bin/python -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt - elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then + ${{ env.python_v1_exe }} -m pip install -r requirements.txt + ${{ env.python_v1_exe }} -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt + ${{ env.python_v2_exe }} -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt + ${{ env.python_v3_exe }} -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt + ${{ env.python_v4_exe }} -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt + else ${{ env.python_v1_exe }} -m pip install --upgrade pip ${{ env.python_v1_exe }} -m pip install -r ./requirements.txt - C:/hostedtoolcache/windows/Python/3.9.13/x86/python.exe -V - ${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/x64/python.exe -V - ${{ env.pythonWinLocation }}/../../${{ env.python_v1 }}*/x64/python.exe -m pip install -r ./requirements.txt - ${{ env.pythonWinLocation }}/../../${{ env.python_v2 }}*/x64/python.exe -m pip install -r ./requirements.txt - ${{ env.pythonWinLocation }}/../../${{ env.python_v3 }}*/x64/python.exe -m pip install -r ./requirements.txt - ${{ env.pythonWinLocation }}/../../${{ env.python_v4 }}*/x64/python.exe -m pip install -r ./requirements.txt - else - python${{ env.python_v1 }} -m pip install -r requirements.txt - python${{ env.python_v2 }} -m pip install -r requirements.txt - python${{ env.python_v3 }} -m pip install -r requirements.txt - python${{ env.python_v4 }} -m pip install -r requirements.txt + ${{ env.python_v2_exe }} -m pip install --upgrade pip + ${{ env.python_v2_exe }} -m pip install -r ./requirements.txt + ${{ env.python_v3_exe }} -m pip install --upgrade pip + ${{ env.python_v3_exe }} -m pip install -r ./requirements.txt + ${{ env.python_v4_exe }} -m pip install --upgrade pip + ${{ env.python_v4_exe }} -m pip install -r ./requirements.txt fi - name: Set MSVC as the default compiler on Windows From 2396a5d4d8d608f8fb9913124b4a335928920e3a Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 18:42:05 -0700 Subject: [PATCH 41/77] More fixes. --- .github/workflows/main.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 327af2c1c1..6a8dcfc8b5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -171,19 +171,19 @@ jobs: export py_lastdir="$(basename $PWD)" cd ../../${{ env.python_v1 }}*/$py_lastdir/ - echo "python_v1_exe=$PWD/python${{ env.python_v1 }}" ${{ matrix.platform.write_to_env }} + echo "python_v1_exe=$PWD/python${{ env.python_v1_name }}" ${{ matrix.platform.write_to_env }} echo "python_v1_dir=$PWD" ${{ matrix.platform.write_to_env }} - cd ../../${{ env.python_v1 }}*/$py_lastdir/ - echo "python_v2_exe=$PWD/python${{ env.python_v1 }}" ${{ matrix.platform.write_to_env }} + cd ../../${{ env.python_v2 }}*/$py_lastdir/ + echo "python_v2_exe=$PWD/python${{ env.python_v2_name }}" ${{ matrix.platform.write_to_env }} echo "python_v2_dir=$PWD" ${{ matrix.platform.write_to_env }} - cd ../../${{ env.python_v1 }}*/$py_lastdir/ - echo "python_v3_exe=$PWD/python${{ env.python_v1 }}" ${{ matrix.platform.write_to_env }} + cd ../../${{ env.python_v3 }}*/$py_lastdir/ + echo "python_v3_exe=$PWD/python${{ env.python_v3_name }}" ${{ matrix.platform.write_to_env }} echo "python_v3_dir=$PWD" ${{ matrix.platform.write_to_env }} - cd ../../${{ env.python_v1 }}*/$py_lastdir/ - echo "python_v4_exe=$PWD/python${{ env.python_v1 }}" ${{ matrix.platform.write_to_env }} + cd ../../${{ env.python_v4 }}*/$py_lastdir/ + echo "python_v4_exe=$PWD/python${{ env.python_v4_name }}" ${{ matrix.platform.write_to_env }} echo "python_v4_dir=$PWD" ${{ matrix.platform.write_to_env }} From 33f4d864a056e8f3417f1b544ae4e704ee7613da Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 18:50:26 -0700 Subject: [PATCH 42/77] Find out what actual executable filename is. --- .github/workflows/main.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6a8dcfc8b5..df5d24f5d3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -133,6 +133,12 @@ jobs: echo "python_v1_exe=/Miniconda3/envs/${{ env.python_v1_name }}/bin/python" ${{ matrix.platform.write_to_env }} echo "python_v1_dir=/Miniconda3/envs/${{ env.python_v1_name }}/bin" ${{ matrix.platform.write_to_env }} + echo "python_v2_exe=/Miniconda3/envs/${{ env.python_v2_name }}/bin/python" ${{ matrix.platform.write_to_env }} + echo "python_v2_dir=/Miniconda3/envs/${{ env.python_v2_name }}/bin" ${{ matrix.platform.write_to_env }} + echo "python_v3_exe=/Miniconda3/envs/${{ env.python_v3_name }}/bin/python" ${{ matrix.platform.write_to_env }} + echo "python_v3_dir=/Miniconda3/envs/${{ env.python_v3_name }}/bin" ${{ matrix.platform.write_to_env }} + echo "python_v4_exe=/Miniconda3/envs/${{ env.python_v4_name }}/bin/python" ${{ matrix.platform.write_to_env }} + echo "python_v4_dir=/Miniconda3/envs/${{ env.python_v4_name }}/bin" ${{ matrix.platform.write_to_env }} - name: Setup Windows Python paths if: matrix.platform.build_python == 'ON' && matrix.platform.os_type == 'windows' @@ -171,6 +177,7 @@ jobs: export py_lastdir="$(basename $PWD)" cd ../../${{ env.python_v1 }}*/$py_lastdir/ + ls echo "python_v1_exe=$PWD/python${{ env.python_v1_name }}" ${{ matrix.platform.write_to_env }} echo "python_v1_dir=$PWD" ${{ matrix.platform.write_to_env }} From e2b213b293de7742881384ff10af9b29e6058094 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 18:53:02 -0700 Subject: [PATCH 43/77] No numbering in directory, apparently. --- .github/workflows/main.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index df5d24f5d3..8f10a30627 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -178,19 +178,19 @@ jobs: cd ../../${{ env.python_v1 }}*/$py_lastdir/ ls - echo "python_v1_exe=$PWD/python${{ env.python_v1_name }}" ${{ matrix.platform.write_to_env }} + echo "python_v1_exe=$PWD/python" ${{ matrix.platform.write_to_env }} echo "python_v1_dir=$PWD" ${{ matrix.platform.write_to_env }} cd ../../${{ env.python_v2 }}*/$py_lastdir/ - echo "python_v2_exe=$PWD/python${{ env.python_v2_name }}" ${{ matrix.platform.write_to_env }} + echo "python_v2_exe=$PWD/python" ${{ matrix.platform.write_to_env }} echo "python_v2_dir=$PWD" ${{ matrix.platform.write_to_env }} cd ../../${{ env.python_v3 }}*/$py_lastdir/ - echo "python_v3_exe=$PWD/python${{ env.python_v3_name }}" ${{ matrix.platform.write_to_env }} + echo "python_v3_exe=$PWD/python" ${{ matrix.platform.write_to_env }} echo "python_v3_dir=$PWD" ${{ matrix.platform.write_to_env }} cd ../../${{ env.python_v4 }}*/$py_lastdir/ - echo "python_v4_exe=$PWD/python${{ env.python_v4_name }}" ${{ matrix.platform.write_to_env }} + echo "python_v4_exe=$PWD/python" ${{ matrix.platform.write_to_env }} echo "python_v4_dir=$PWD" ${{ matrix.platform.write_to_env }} From c09865315f94cee106496224a44e2be4ffd150ca Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 20:45:21 -0700 Subject: [PATCH 44/77] Simplify python installation; start work on CMake/Python. --- .github/workflows/main.yml | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8f10a30627..4d048670b9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -199,22 +199,16 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE}/roadrunner - if [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - ${{ env.python_v1_exe }} -m pip install -r requirements.txt - ${{ env.python_v1_exe }} -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt - ${{ env.python_v2_exe }} -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt - ${{ env.python_v3_exe }} -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt - ${{ env.python_v4_exe }} -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt - else - ${{ env.python_v1_exe }} -m pip install --upgrade pip - ${{ env.python_v1_exe }} -m pip install -r ./requirements.txt - ${{ env.python_v2_exe }} -m pip install --upgrade pip - ${{ env.python_v2_exe }} -m pip install -r ./requirements.txt - ${{ env.python_v3_exe }} -m pip install --upgrade pip - ${{ env.python_v3_exe }} -m pip install -r ./requirements.txt - ${{ env.python_v4_exe }} -m pip install --upgrade pip - ${{ env.python_v4_exe }} -m pip install -r ./requirements.txt - fi + ${{ env.python_v1_exe }} -m pip install --upgrade pip + ${{ env.python_v1_exe }} -m pip install -r ./requirements.txt + ${{ env.python_v2_exe }} -m pip install --upgrade pip + ${{ env.python_v2_exe }} -m pip install -r ./requirements.txt + ${{ env.python_v3_exe }} -m pip install --upgrade pip + ${{ env.python_v3_exe }} -m pip install -r ./requirements.txt + ${{ env.python_v4_exe }} -m pip install --upgrade pip + ${{ env.python_v4_exe }} -m pip install -r ./requirements.txt + # At one point, we needed this on manylinux: + # ${{ env.python_v1_exe }} -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt - name: Set MSVC as the default compiler on Windows if: matrix.platform.os_type == 'windows' @@ -342,6 +336,7 @@ jobs: make install echo SWIG_DIR="-DSWIG_EXECUTABLE=${RUNNER_WORKSPACE}/swig/install-swig/bin/swig" >> "${GITHUB_ENV}" fi + echo PYTHON_DIR="-DPython_ROOT_DIR=${{env.python_v1_dir}}" >> "${GITHUB_ENV}" - name: Download LibRoadRunner Dependencies binaries shell: bash @@ -416,6 +411,7 @@ jobs: -DBUILD_TESTS=${{ matrix.build_tests }} \ -DBUILD_RR_PLUGINS=${{ matrix.build_plugins }} \ -DBUILD_PYTHON=${{ matrix.platform.build_python }} \ + $${{env.PYTHON_DIR}} \ ${SWIG_DIR} - name: Build and install RoadRunner From 057e625aa498a14fb64422842b040177f2514f34 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 21:34:51 -0700 Subject: [PATCH 45/77] Up one dir for manylinux python root dir. --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4d048670b9..932815c949 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -336,7 +336,7 @@ jobs: make install echo SWIG_DIR="-DSWIG_EXECUTABLE=${RUNNER_WORKSPACE}/swig/install-swig/bin/swig" >> "${GITHUB_ENV}" fi - echo PYTHON_DIR="-DPython_ROOT_DIR=${{env.python_v1_dir}}" >> "${GITHUB_ENV}" + echo PYTHON_DIR="-DPython_ROOT_DIR=${{env.python_v1_dir}}/.." >> "${GITHUB_ENV}" - name: Download LibRoadRunner Dependencies binaries shell: bash From 71b1f9201f86ba5e49373d3d4f9ff0c74aa85948 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 21:58:59 -0700 Subject: [PATCH 46/77] Fix the manylinux python dir a different way? --- .github/workflows/main.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 932815c949..ff4468f1c1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -132,13 +132,13 @@ jobs: # sed -i 's/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g' configure echo "python_v1_exe=/Miniconda3/envs/${{ env.python_v1_name }}/bin/python" ${{ matrix.platform.write_to_env }} - echo "python_v1_dir=/Miniconda3/envs/${{ env.python_v1_name }}/bin" ${{ matrix.platform.write_to_env }} + echo "python_v1_dir=/Miniconda3/envs/${{ env.python_v1_name }}" ${{ matrix.platform.write_to_env }} echo "python_v2_exe=/Miniconda3/envs/${{ env.python_v2_name }}/bin/python" ${{ matrix.platform.write_to_env }} - echo "python_v2_dir=/Miniconda3/envs/${{ env.python_v2_name }}/bin" ${{ matrix.platform.write_to_env }} + echo "python_v2_dir=/Miniconda3/envs/${{ env.python_v2_name }}" ${{ matrix.platform.write_to_env }} echo "python_v3_exe=/Miniconda3/envs/${{ env.python_v3_name }}/bin/python" ${{ matrix.platform.write_to_env }} - echo "python_v3_dir=/Miniconda3/envs/${{ env.python_v3_name }}/bin" ${{ matrix.platform.write_to_env }} + echo "python_v3_dir=/Miniconda3/envs/${{ env.python_v3_name }}" ${{ matrix.platform.write_to_env }} echo "python_v4_exe=/Miniconda3/envs/${{ env.python_v4_name }}/bin/python" ${{ matrix.platform.write_to_env }} - echo "python_v4_dir=/Miniconda3/envs/${{ env.python_v4_name }}/bin" ${{ matrix.platform.write_to_env }} + echo "python_v4_dir=/Miniconda3/envs/${{ env.python_v4_name }}" ${{ matrix.platform.write_to_env }} - name: Setup Windows Python paths if: matrix.platform.build_python == 'ON' && matrix.platform.os_type == 'windows' @@ -336,7 +336,7 @@ jobs: make install echo SWIG_DIR="-DSWIG_EXECUTABLE=${RUNNER_WORKSPACE}/swig/install-swig/bin/swig" >> "${GITHUB_ENV}" fi - echo PYTHON_DIR="-DPython_ROOT_DIR=${{env.python_v1_dir}}/.." >> "${GITHUB_ENV}" + echo PYTHON_DIR="-DPython_ROOT_DIR=${{env.python_v1_dir}}" >> "${GITHUB_ENV}" - name: Download LibRoadRunner Dependencies binaries shell: bash From 93869cac45319ec5c1a12b51893a0be57e1c6c1c Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Fri, 10 May 2024 23:05:31 -0700 Subject: [PATCH 47/77] Fix cmake options. --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ff4468f1c1..03dbc8fac5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -411,8 +411,8 @@ jobs: -DBUILD_TESTS=${{ matrix.build_tests }} \ -DBUILD_RR_PLUGINS=${{ matrix.build_plugins }} \ -DBUILD_PYTHON=${{ matrix.platform.build_python }} \ - $${{env.PYTHON_DIR}} \ - ${SWIG_DIR} + ${{env.PYTHON_DIR}} \ + ${{env.SWIG_DIR}} - name: Build and install RoadRunner shell: bash From c4c42bcb602376a301edfcdf52e7d7d468069f2d Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Mon, 13 May 2024 12:34:38 -0700 Subject: [PATCH 48/77] Get python tests working, and start working on multiple python builds. --- .github/workflows/main.yml | 109 ++++++++++++++++++++++++------------- 1 file changed, 71 insertions(+), 38 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 03dbc8fac5..aa606d221b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -201,12 +201,20 @@ jobs: cd ${RUNNER_WORKSPACE}/roadrunner ${{ env.python_v1_exe }} -m pip install --upgrade pip ${{ env.python_v1_exe }} -m pip install -r ./requirements.txt + ${{ env.python_v1_exe }} -m pip install -r ./test-requirements.txt + ${{ env.python_v1_exe }} -m pip install build ${{ env.python_v2_exe }} -m pip install --upgrade pip ${{ env.python_v2_exe }} -m pip install -r ./requirements.txt + ${{ env.python_v2_exe }} -m pip install -r ./test-requirements.txt + ${{ env.python_v2_exe }} -m pip install build ${{ env.python_v3_exe }} -m pip install --upgrade pip ${{ env.python_v3_exe }} -m pip install -r ./requirements.txt + ${{ env.python_v3_exe }} -m pip install -r ./test-requirements.txt + ${{ env.python_v3_exe }} -m pip install build ${{ env.python_v4_exe }} -m pip install --upgrade pip ${{ env.python_v4_exe }} -m pip install -r ./requirements.txt + ${{ env.python_v4_exe }} -m pip install -r ./test-requirements.txt + ${{ env.python_v4_exe }} -m pip install build # At one point, we needed this on manylinux: # ${{ env.python_v1_exe }} -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt @@ -420,36 +428,13 @@ jobs: cd ${RUNNER_WORKSPACE}/build-roadrunner cmake --build . --target install --config ${{ matrix.platform.build_type }} - - name: Install test dependencies - if: matrix.build_tests == 'ON' && matrix.platform.build_python == 'ON' - shell: bash - run: | - cd ${RUNNER_WORKSPACE}/roadrunner - if [ "${{ matrix.platform.os_type }}" == 'windows' ]; then - python -m pip install -r requirements.txt - python -m pip install -r test-requirements.txt - elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - python${{ matrix.python_version.version }} -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r requirements.txt - python${{ matrix.python_version.version }} -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org -r test-requirements.txt - else - python${{ matrix.python_version.version }} -m pip install -r requirements.txt - python${{ matrix.python_version.version }} -m pip install -r test-requirements.txt - fi - - name: Run RoadRunner tests - if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' && matrix.python_version.run_tests == 'ON' + if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress --exclude-regex "^python_tests.*" - - name: Run RoadRunner Python tests - if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' && matrix.platform.build_python == 'ON' - shell: bash - run: | - cd ${RUNNER_WORKSPACE}/build-roadrunner - ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --tests-regex ^python_tests* - - name: Workaround actions/upload-artifact#176 run: | echo "artifacts_root=$(realpath ..)" ${{ matrix.platform.write_to_env }} @@ -486,19 +471,11 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE}/install-roadrunner - if [ "${{ matrix.platform.os_type }}" == 'windows' ]; then - python -m pip install setuptools wheel - python setup.py bdist_wheel - python setup_rrplugins.py bdist_wheel - elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - python${{ matrix.python_version.version }} -m pip install --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org setuptools wheel - python${{ matrix.python_version.version }} setup.py bdist_wheel - python${{ matrix.python_version.version }} setup_rrplugins.py bdist_wheel - else - python${{ matrix.python_version.version }} -m pip install setuptools wheel - python${{ matrix.python_version.version }} setup.py bdist_wheel - python${{ matrix.python_version.version }} setup_rrplugins.py bdist_wheel - fi + ${{env.python_v1_exe}} -m build --wheel + rm -r -f build + mv setup_rrplugins.py setup.py + ${{env.python_v1_exe}} -m build setup.py wheel + rm -r -f build - name: Rename Python wheel artifacts if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' @@ -538,4 +515,60 @@ jobs: uses: actions/upload-artifact@v3 with: name: ${{env.roadrunner_plugins_python_wheel_artifacts_name}} - path: ${{env.roadrunner_plugins_python_wheel_artifacts_file}} \ No newline at end of file + path: ${{env.roadrunner_plugins_python_wheel_artifacts_file}} + + - name: Rebuild RoadRunner with second Python version + shell: bash + run: | + cd ${RUNNER_WORKSPACE}/build-roadrunner + cmake $GITHUB_WORKSPACE -DPython_ROOT_DIR=${{env.python_v2_dir}} + cmake --build . --target install --config ${{ matrix.platform.build_type }} + # ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --tests-regex ^python_tests* + + - name: Create Python wheel artifacts and rename + if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' + shell: bash + run: | + cd ${RUNNER_WORKSPACE}/install-roadrunner + ${{env.python_v1_exe}} -m build --wheel + rm -r -f build + mv setup_rrplugins.py setup.py + ${{env.python_v1_exe}} -m build setup.py wheel + rm -r -f build + + cd ${RUNNER_WORKSPACE}/install-roadrunner/dist + if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then + mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") + mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") + elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then + mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") + mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") + fi + + - name: Set Python wheel artifacts path and name + if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' + shell: bash + run: | + cd ${RUNNER_WORKSPACE} + roadrunner_python_wheel_file_name=$(ls install-roadrunner/dist | grep '^libroadrunner') + echo "roadrunner_python_wheel_artifacts_name=${roadrunner_python_wheel_file_name}" >> "${GITHUB_ENV}" + roadrunner_plugins_python_wheel_file_name=$(ls install-roadrunner/dist | grep '^rrplugins') + echo "roadrunner_plugins_python_wheel_artifacts_name=${roadrunner_plugins_python_wheel_file_name}" >> "${GITHUB_ENV}" + # we need to use relative path as actions/upload-artifact@v1 cannot find it on containerized runners + echo "roadrunner_python_wheel_artifacts_file=${{env.artifacts_root}}/install-roadrunner/dist/$roadrunner_python_wheel_file_name" >> "${GITHUB_ENV}" + echo "roadrunner_plugins_python_wheel_artifacts_file=${{env.artifacts_root}}/install-roadrunner/dist/$roadrunner_plugins_python_wheel_file_name" >> "${GITHUB_ENV}" + + - name: Upload RoadRunner Python wheel artifacts + if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' + uses: actions/upload-artifact@v3 + with: + name: ${{env.roadrunner_python_wheel_artifacts_name}} + path: ${{env.roadrunner_python_wheel_artifacts_file}} + + - name: Upload RoadRunner Plugins Python wheel artifacts + if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' + uses: actions/upload-artifact@v3 + with: + name: ${{env.roadrunner_plugins_python_wheel_artifacts_name}} + path: ${{env.roadrunner_plugins_python_wheel_artifacts_file}} + From 03b32e34d62988486c363c46bf431798d1b02a9d Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Mon, 13 May 2024 14:39:02 -0700 Subject: [PATCH 49/77] Try to get new 'build' module to work. --- .github/workflows/main.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index aa606d221b..8707c08713 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -471,10 +471,12 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE}/install-roadrunner - ${{env.python_v1_exe}} -m build --wheel + # ${{env.python_v1_exe}} -m build --wheel + ${{env.python_v1_exe}} -m build --help + ${{env.python_v1_exe}} -m build rm -r -f build mv setup_rrplugins.py setup.py - ${{env.python_v1_exe}} -m build setup.py wheel + ${{env.python_v1_exe}} -m build wheel rm -r -f build - name: Rename Python wheel artifacts From 18ae2eb5170cd2ddc2217f09da20f48913a11e1b Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Mon, 13 May 2024 14:40:45 -0700 Subject: [PATCH 50/77] Fix typos. --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8707c08713..89452ed86e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -476,7 +476,7 @@ jobs: ${{env.python_v1_exe}} -m build rm -r -f build mv setup_rrplugins.py setup.py - ${{env.python_v1_exe}} -m build wheel + ${{env.python_v1_exe}} -m build --wheel rm -r -f build - name: Rename Python wheel artifacts @@ -535,7 +535,7 @@ jobs: ${{env.python_v1_exe}} -m build --wheel rm -r -f build mv setup_rrplugins.py setup.py - ${{env.python_v1_exe}} -m build setup.py wheel + ${{env.python_v1_exe}} -m build --wheel rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist From 9e1800acd81231295f331e67015623594637bed8 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Mon, 13 May 2024 15:04:16 -0700 Subject: [PATCH 51/77] Fixed wheel; attempt to make wheel artifacts directory. --- .github/workflows/main.yml | 77 ++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 40 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 89452ed86e..033cf4587e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -471,9 +471,7 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE}/install-roadrunner - # ${{env.python_v1_exe}} -m build --wheel - ${{env.python_v1_exe}} -m build --help - ${{env.python_v1_exe}} -m build + ${{env.python_v1_exe}} -m build --wheel rm -r -f build mv setup_rrplugins.py setup.py ${{env.python_v1_exe}} -m build --wheel @@ -492,50 +490,52 @@ jobs: mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/linux/manylinux2014/g") fi - - name: Set Python wheel artifacts path and name - if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' + - name: Rebuild RoadRunner with second Python version shell: bash run: | - cd ${RUNNER_WORKSPACE} - roadrunner_python_wheel_file_name=$(ls install-roadrunner/dist | grep '^libroadrunner') - echo "roadrunner_python_wheel_artifacts_name=${roadrunner_python_wheel_file_name}" >> "${GITHUB_ENV}" - roadrunner_plugins_python_wheel_file_name=$(ls install-roadrunner/dist | grep '^rrplugins') - echo "roadrunner_plugins_python_wheel_artifacts_name=${roadrunner_plugins_python_wheel_file_name}" >> "${GITHUB_ENV}" - # we need to use relative path as actions/upload-artifact@v1 cannot find it on containerized runners - echo "roadrunner_python_wheel_artifacts_file=${{env.artifacts_root}}/install-roadrunner/dist/$roadrunner_python_wheel_file_name" >> "${GITHUB_ENV}" - echo "roadrunner_plugins_python_wheel_artifacts_file=${{env.artifacts_root}}/install-roadrunner/dist/$roadrunner_plugins_python_wheel_file_name" >> "${GITHUB_ENV}" + cd ${RUNNER_WORKSPACE}/build-roadrunner + cmake $GITHUB_WORKSPACE -DPython_ROOT_DIR=${{env.python_v2_dir}} + cmake --build . --target install --config ${{ matrix.platform.build_type }} + # ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --tests-regex ^python_tests* - - name: Upload RoadRunner Python wheel artifacts + - name: Create second Python wheel artifacts and rename if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' - uses: actions/upload-artifact@v3 - with: - name: ${{env.roadrunner_python_wheel_artifacts_name}} - path: ${{env.roadrunner_python_wheel_artifacts_file}} + shell: bash + run: | + cd ${RUNNER_WORKSPACE}/install-roadrunner + ${{env.python_v2_exe}} -m build --wheel + rm -r -f build + mv setup_rrplugins.py setup.py + ${{env.python_v2_exe}} -m build --wheel + rm -r -f build - - name: Upload RoadRunner Plugins Python wheel artifacts - if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' - uses: actions/upload-artifact@v3 - with: - name: ${{env.roadrunner_plugins_python_wheel_artifacts_name}} - path: ${{env.roadrunner_plugins_python_wheel_artifacts_file}} + cd ${RUNNER_WORKSPACE}/install-roadrunner/dist + if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then + mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") + mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") + elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then + mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") + mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") + fi - - name: Rebuild RoadRunner with second Python version + + - name: Rebuild RoadRunner with third Python version shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner - cmake $GITHUB_WORKSPACE -DPython_ROOT_DIR=${{env.python_v2_dir}} + cmake $GITHUB_WORKSPACE -DPython_ROOT_DIR=${{env.python_v3_dir}} cmake --build . --target install --config ${{ matrix.platform.build_type }} # ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --tests-regex ^python_tests* - - name: Create Python wheel artifacts and rename + - name: Create second Python wheel artifacts and rename if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE}/install-roadrunner - ${{env.python_v1_exe}} -m build --wheel + ${{env.python_v3_exe}} -m build --wheel rm -r -f build mv setup_rrplugins.py setup.py - ${{env.python_v1_exe}} -m build --wheel + ${{env.python_v3_exe}} -m build --wheel rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist @@ -547,18 +547,23 @@ jobs: mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") fi + + + + + - name: Set Python wheel artifacts path and name if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE} - roadrunner_python_wheel_file_name=$(ls install-roadrunner/dist | grep '^libroadrunner') + roadrunner_python_wheel_file_name="${{matrix.platform.name}}-python-wheels" echo "roadrunner_python_wheel_artifacts_name=${roadrunner_python_wheel_file_name}" >> "${GITHUB_ENV}" roadrunner_plugins_python_wheel_file_name=$(ls install-roadrunner/dist | grep '^rrplugins') echo "roadrunner_plugins_python_wheel_artifacts_name=${roadrunner_plugins_python_wheel_file_name}" >> "${GITHUB_ENV}" # we need to use relative path as actions/upload-artifact@v1 cannot find it on containerized runners - echo "roadrunner_python_wheel_artifacts_file=${{env.artifacts_root}}/install-roadrunner/dist/$roadrunner_python_wheel_file_name" >> "${GITHUB_ENV}" - echo "roadrunner_plugins_python_wheel_artifacts_file=${{env.artifacts_root}}/install-roadrunner/dist/$roadrunner_plugins_python_wheel_file_name" >> "${GITHUB_ENV}" + echo "roadrunner_python_wheel_artifacts_file=$roadrunner_python_wheel_file_name" >> "${GITHUB_ENV}" + echo "roadrunner_plugins_python_wheel_artifacts_file=${{env.artifacts_root}}/install-roadrunner/dist/" >> "${GITHUB_ENV}" - name: Upload RoadRunner Python wheel artifacts if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' @@ -566,11 +571,3 @@ jobs: with: name: ${{env.roadrunner_python_wheel_artifacts_name}} path: ${{env.roadrunner_python_wheel_artifacts_file}} - - - name: Upload RoadRunner Plugins Python wheel artifacts - if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' - uses: actions/upload-artifact@v3 - with: - name: ${{env.roadrunner_plugins_python_wheel_artifacts_name}} - path: ${{env.roadrunner_plugins_python_wheel_artifacts_file}} - From 65d1286408bd94e7903c7cbee640f51023b0046a Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Mon, 13 May 2024 15:42:50 -0700 Subject: [PATCH 52/77] My relative filename fix might not have worked? For now, switch to upload v1, which allows relative filenames. --- .github/workflows/main.yml | 90 +++++++++++++++++++++++++------------- 1 file changed, 60 insertions(+), 30 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 033cf4587e..4884b5cae1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -300,7 +300,7 @@ jobs: path: ${RUNNER_WORKSPACE}/.ccache key: ${{ runner.os }}-${{ steps.ccache_cache_timestamp.outputs.timestamp - }} + }} restore-keys: | ${{ runner.os }}-${{ steps.ccache_cache_timestamp.outputs.timestamp }} ${{ runner.os }}- @@ -344,7 +344,7 @@ jobs: make install echo SWIG_DIR="-DSWIG_EXECUTABLE=${RUNNER_WORKSPACE}/swig/install-swig/bin/swig" >> "${GITHUB_ENV}" fi - echo PYTHON_DIR="-DPython_ROOT_DIR=${{env.python_v1_dir}}" >> "${GITHUB_ENV}" + echo PYTHON_DIR="-DPython_ROOT_DIR=${{ env.python_v1_dir }}" >> "${GITHUB_ENV}" - name: Download LibRoadRunner Dependencies binaries shell: bash @@ -419,8 +419,8 @@ jobs: -DBUILD_TESTS=${{ matrix.build_tests }} \ -DBUILD_RR_PLUGINS=${{ matrix.build_plugins }} \ -DBUILD_PYTHON=${{ matrix.platform.build_python }} \ - ${{env.PYTHON_DIR}} \ - ${{env.SWIG_DIR}} + ${{ env.PYTHON_DIR }} \ + ${{ env.SWIG_DIR }} - name: Build and install RoadRunner shell: bash @@ -428,12 +428,13 @@ jobs: cd ${RUNNER_WORKSPACE}/build-roadrunner cmake --build . --target install --config ${{ matrix.platform.build_type }} - - name: Run RoadRunner tests + - name: Run all RoadRunner tests if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner - ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress --exclude-regex "^python_tests.*" + if [ "${{ matrix.platform.os_name }}" != 'macos_latest' ]; then + ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress - name: Workaround actions/upload-artifact#176 run: | @@ -458,23 +459,23 @@ jobs: os_name_without_build_type="${os_name%%-*}" echo "artifacts_name=roadrunner-${os_name_without_build_type}-${host_architecture}-${{ matrix.platform.build_type }}" >> "${GITHUB_ENV}" fi - echo "artifacts_path=${{env.artifacts_root}}/install-roadrunner" >> "${GITHUB_ENV}" + echo "artifacts_path=${{ env.artifacts_root }}/install-roadrunner" >> "${GITHUB_ENV}" - name: Upload roadrunner binaries uses: actions/upload-artifact@v3 with: - name: ${{env.artifacts_name}} - path: ${{env.artifacts_path}} + name: ${{ env.artifacts_name }} + path: ${{ env.artifacts_path }} - name: Create Python wheel artifacts if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE}/install-roadrunner - ${{env.python_v1_exe}} -m build --wheel + ${{ env.python_v1_exe }} -m build --wheel rm -r -f build mv setup_rrplugins.py setup.py - ${{env.python_v1_exe}} -m build --wheel + ${{ env.python_v1_exe }} -m build --wheel rm -r -f build - name: Rename Python wheel artifacts @@ -494,19 +495,18 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner - cmake $GITHUB_WORKSPACE -DPython_ROOT_DIR=${{env.python_v2_dir}} + cmake $GITHUB_WORKSPACE -DPython_ROOT_DIR=${{ env.python_v2_dir }} cmake --build . --target install --config ${{ matrix.platform.build_type }} - # ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --tests-regex ^python_tests* - name: Create second Python wheel artifacts and rename if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE}/install-roadrunner - ${{env.python_v2_exe}} -m build --wheel + ${{ env.python_v2_exe }} -m build --wheel rm -r -f build mv setup_rrplugins.py setup.py - ${{env.python_v2_exe}} -m build --wheel + ${{ env.python_v2_exe }} -m build --wheel rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist @@ -523,19 +523,18 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner - cmake $GITHUB_WORKSPACE -DPython_ROOT_DIR=${{env.python_v3_dir}} + cmake $GITHUB_WORKSPACE -DPython_ROOT_DIR=${{ env.python_v3_dir }} cmake --build . --target install --config ${{ matrix.platform.build_type }} - # ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --tests-regex ^python_tests* - - name: Create second Python wheel artifacts and rename + - name: Create third Python wheel artifacts and rename if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE}/install-roadrunner - ${{env.python_v3_exe}} -m build --wheel + ${{ env.python_v3_exe }} -m build --wheel rm -r -f build mv setup_rrplugins.py setup.py - ${{env.python_v3_exe}} -m build --wheel + ${{ env.python_v3_exe }} -m build --wheel rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist @@ -548,6 +547,42 @@ jobs: fi + - name: Rebuild RoadRunner with fourth Python version + shell: bash + run: | + cd ${RUNNER_WORKSPACE}/build-roadrunner + cmake $GITHUB_WORKSPACE -DPython_ROOT_DIR=${{ env.python_v4_dir }} + cmake --build . --target install --config ${{ matrix.platform.build_type }} + + - name: Run RoadRunner tests on fourth Python version + if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' + shell: bash + run: | + cd ${RUNNER_WORKSPACE}/build-roadrunner + if [ "${{ matrix.platform.os_name }}" != 'macos_latest' ]; then + ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress --tests-regex ^python_tests* + + + - name: Create fourth Python wheel artifacts and rename + if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' + shell: bash + run: | + cd ${RUNNER_WORKSPACE}/install-roadrunner + ${{ env.python_v4_exe }} -m build --wheel + rm -r -f build + mv setup_rrplugins.py setup.py + ${{ env.python_v4_exe }} -m build --wheel + rm -r -f build + + cd ${RUNNER_WORKSPACE}/install-roadrunner/dist + if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then + mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") + mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") + elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then + mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") + mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") + fi + @@ -557,17 +592,12 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE} - roadrunner_python_wheel_file_name="${{matrix.platform.name}}-python-wheels" - echo "roadrunner_python_wheel_artifacts_name=${roadrunner_python_wheel_file_name}" >> "${GITHUB_ENV}" - roadrunner_plugins_python_wheel_file_name=$(ls install-roadrunner/dist | grep '^rrplugins') - echo "roadrunner_plugins_python_wheel_artifacts_name=${roadrunner_plugins_python_wheel_file_name}" >> "${GITHUB_ENV}" - # we need to use relative path as actions/upload-artifact@v1 cannot find it on containerized runners - echo "roadrunner_python_wheel_artifacts_file=$roadrunner_python_wheel_file_name" >> "${GITHUB_ENV}" - echo "roadrunner_plugins_python_wheel_artifacts_file=${{env.artifacts_root}}/install-roadrunner/dist/" >> "${GITHUB_ENV}" + echo "roadrunner_python_wheel_artifacts_name=${{ matrix.platform.name }}-python-wheels" >> "${GITHUB_ENV}" + echo "roadrunner__python_wheel_artifacts_file=../install-roadrunner/dist/" >> "${GITHUB_ENV}" - name: Upload RoadRunner Python wheel artifacts if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v1 with: - name: ${{env.roadrunner_python_wheel_artifacts_name}} - path: ${{env.roadrunner_python_wheel_artifacts_file}} + name: ${{ env.roadrunner_python_wheel_artifacts_name }} + path: ${{ env.roadrunner_python_wheel_artifacts_file }} From 755a8e23ac12b7abda507dcf6f18b2ad0de59905 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Mon, 13 May 2024 15:44:03 -0700 Subject: [PATCH 53/77] Fix syntax error. --- .github/workflows/main.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 4884b5cae1..3779c12dfc 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -299,8 +299,7 @@ jobs: with: path: ${RUNNER_WORKSPACE}/.ccache key: - ${{ runner.os }}-${{ steps.ccache_cache_timestamp.outputs.timestamp - }} + ${{ runner.os }}-${{ steps.ccache_cache_timestamp.outputs.timestamp }} restore-keys: | ${{ runner.os }}-${{ steps.ccache_cache_timestamp.outputs.timestamp }} ${{ runner.os }}- From 9ae7d29df66ec35d78aa907480a8a00a6672b8d5 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Mon, 13 May 2024 16:04:37 -0700 Subject: [PATCH 54/77] Try different way of running tests. --- .github/workflows/main.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3779c12dfc..6c41bcbde2 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -428,12 +428,12 @@ jobs: cmake --build . --target install --config ${{ matrix.platform.build_type }} - name: Run all RoadRunner tests - if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' + if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' && matrix.platform.os_name != 'macos_latest' shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner - if [ "${{ matrix.platform.os_name }}" != 'macos_latest' ]; then - ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress + # ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress + ctest -V - name: Workaround actions/upload-artifact#176 run: | @@ -554,12 +554,11 @@ jobs: cmake --build . --target install --config ${{ matrix.platform.build_type }} - name: Run RoadRunner tests on fourth Python version - if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' + if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' && matrix.platform.os_name != 'macos_latest' shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner - if [ "${{ matrix.platform.os_name }}" != 'macos_latest' ]; then - ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress --tests-regex ^python_tests* + ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress --tests-regex ^python_tests* - name: Create fourth Python wheel artifacts and rename From 59475b753b42538a53367d33e775473cbb278a2e Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Mon, 13 May 2024 17:00:08 -0700 Subject: [PATCH 55/77] Try more than just -V for ctest. Rename wheel files as we go. Fix typo in filename. --- .github/workflows/main.yml | 41 ++++++++++++++++++++++++++++---------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6c41bcbde2..7c62c08255 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -433,7 +433,7 @@ jobs: run: | cd ${RUNNER_WORKSPACE}/build-roadrunner # ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress - ctest -V + ctest --output-on-failure --verbose --extra-verbose --progress - name: Workaround actions/upload-artifact#176 run: | @@ -504,10 +504,18 @@ jobs: cd ${RUNNER_WORKSPACE}/install-roadrunner ${{ env.python_v2_exe }} -m build --wheel rm -r -f build + cd ${RUNNER_WORKSPACE}/install-roadrunner/dist + if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then + mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") + mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") + elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then + mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") + mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") + fi + mv setup_rrplugins.py setup.py ${{ env.python_v2_exe }} -m build --wheel rm -r -f build - cd ${RUNNER_WORKSPACE}/install-roadrunner/dist if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") @@ -532,10 +540,18 @@ jobs: cd ${RUNNER_WORKSPACE}/install-roadrunner ${{ env.python_v3_exe }} -m build --wheel rm -r -f build + cd ${RUNNER_WORKSPACE}/install-roadrunner/dist + if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then + mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") + mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") + elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then + mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") + mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") + fi + mv setup_rrplugins.py setup.py ${{ env.python_v3_exe }} -m build --wheel rm -r -f build - cd ${RUNNER_WORKSPACE}/install-roadrunner/dist if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") @@ -558,20 +574,28 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner - ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress --tests-regex ^python_tests* + ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress --tests-regex python_tests - - name: Create fourth Python wheel artifacts and rename + - name: Create third Python wheel artifacts and rename if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE}/install-roadrunner ${{ env.python_v4_exe }} -m build --wheel rm -r -f build + cd ${RUNNER_WORKSPACE}/install-roadrunner/dist + if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then + mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") + mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") + elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then + mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") + mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") + fi + mv setup_rrplugins.py setup.py ${{ env.python_v4_exe }} -m build --wheel rm -r -f build - cd ${RUNNER_WORKSPACE}/install-roadrunner/dist if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") @@ -582,16 +606,13 @@ jobs: fi - - - - name: Set Python wheel artifacts path and name if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE} echo "roadrunner_python_wheel_artifacts_name=${{ matrix.platform.name }}-python-wheels" >> "${GITHUB_ENV}" - echo "roadrunner__python_wheel_artifacts_file=../install-roadrunner/dist/" >> "${GITHUB_ENV}" + echo "roadrunner_python_wheel_artifacts_file=${RUNNER_WORKSPACE}/install-roadrunner/dist/" >> "${GITHUB_ENV}" - name: Upload RoadRunner Python wheel artifacts if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' From 8cc2285711c62369c9000a381cd65fb91a798d8d Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Mon, 13 May 2024 18:24:09 -0700 Subject: [PATCH 56/77] Fix issues with renaming wheel files. --- .github/workflows/main.yml | 63 ++++++++++++-------------------------- 1 file changed, 19 insertions(+), 44 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7c62c08255..50ac3e274b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -433,7 +433,9 @@ jobs: run: | cd ${RUNNER_WORKSPACE}/build-roadrunner # ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress - ctest --output-on-failure --verbose --extra-verbose --progress + if [ "${{ matrix.platform.os_name }}" != 'macos-latest' ]; then + ctest --output-on-failure --verbose --extra-verbose --progress + fi - name: Workaround actions/upload-artifact#176 run: | @@ -483,11 +485,11 @@ jobs: run: | cd ${RUNNER_WORKSPACE}/install-roadrunner/dist if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then - mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") - mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") + mv libroadrunner*universal*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") + mv rrplugins*universal*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/linux/manylinux2014/g") - mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/linux/manylinux2014/g") + mv libroadrunner*-linux*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") + mv rrplugins*-linux*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") fi - name: Rebuild RoadRunner with second Python version @@ -504,25 +506,16 @@ jobs: cd ${RUNNER_WORKSPACE}/install-roadrunner ${{ env.python_v2_exe }} -m build --wheel rm -r -f build - cd ${RUNNER_WORKSPACE}/install-roadrunner/dist - if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then - mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") - mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") - elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") - mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") - fi - mv setup_rrplugins.py setup.py ${{ env.python_v2_exe }} -m build --wheel rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then - mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") - mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") + mv libroadrunner*universal*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") + mv rrplugins*universal*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") - mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") + mv libroadrunner*-linux*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") + mv rrplugins*-linux*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") fi @@ -540,25 +533,16 @@ jobs: cd ${RUNNER_WORKSPACE}/install-roadrunner ${{ env.python_v3_exe }} -m build --wheel rm -r -f build - cd ${RUNNER_WORKSPACE}/install-roadrunner/dist - if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then - mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") - mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") - elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") - mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") - fi - mv setup_rrplugins.py setup.py ${{ env.python_v3_exe }} -m build --wheel rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then - mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") - mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") + mv libroadrunner*universal*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") + mv rrplugins*universal*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") - mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") + mv libroadrunner*-linux*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") + mv rrplugins*-linux*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") fi @@ -584,25 +568,16 @@ jobs: cd ${RUNNER_WORKSPACE}/install-roadrunner ${{ env.python_v4_exe }} -m build --wheel rm -r -f build - cd ${RUNNER_WORKSPACE}/install-roadrunner/dist - if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then - mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") - mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") - elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") - mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") - fi - mv setup_rrplugins.py setup.py ${{ env.python_v4_exe }} -m build --wheel rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then - mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") - mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") + mv libroadrunner*universal*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") + mv rrplugins*universal*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - mv libroadrunner*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") - mv rrplugins*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") + mv libroadrunner*-linux*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") + mv rrplugins*-linux*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") fi From d3409431133fd376b9b4510f326b0b1d78f3f804 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Mon, 13 May 2024 19:00:36 -0700 Subject: [PATCH 57/77] Fix sed part of commands. --- .github/workflows/main.yml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 50ac3e274b..8d947a63b8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -485,11 +485,11 @@ jobs: run: | cd ${RUNNER_WORKSPACE}/install-roadrunner/dist if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then - mv libroadrunner*universal*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") - mv rrplugins*universal*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") + mv libroadrunner*universal*.whl $(echo libroadrunner*universal*.whl | sed "s/universal2/${host_architecture}/g") + mv rrplugins*universal*.whl $(echo rrplugins*universal*.whl | sed "s/universal2/${host_architecture}/g") elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - mv libroadrunner*-linux*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") - mv rrplugins*-linux*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") + mv libroadrunner*-linux*.whl $(echo libroadrunner*-linux*.whl | sed "s/-linux/-manylinux2014/g") + mv rrplugins*-linux*.whl $(echo rrplugins*-linux*.whl | sed "s/-linux/-manylinux2014/g") fi - name: Rebuild RoadRunner with second Python version @@ -511,11 +511,11 @@ jobs: rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then - mv libroadrunner*universal*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") - mv rrplugins*universal*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") + mv libroadrunner*universal*.whl $(echo libroadrunner*universal*.whl | sed "s/universal2/${host_architecture}/g") + mv rrplugins*universal*.whl $(echo rrplugins*universal*.whl | sed "s/universal2/${host_architecture}/g") elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - mv libroadrunner*-linux*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") - mv rrplugins*-linux*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") + mv libroadrunner*-linux*.whl $(echo libroadrunner*-linux*.whl | sed "s/-linux/-manylinux2014/g") + mv rrplugins*-linux*.whl $(echo rrplugins*-linux*.whl | sed "s/-linux/-manylinux2014/g") fi @@ -538,11 +538,11 @@ jobs: rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then - mv libroadrunner*universal*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") - mv rrplugins*universal*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") + mv libroadrunner*universal*.whl $(echo libroadrunner*universal*.whl | sed "s/universal2/${host_architecture}/g") + mv rrplugins*universal*.whl $(echo rrplugins*universal*.whl | sed "s/universal2/${host_architecture}/g") elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - mv libroadrunner*-linux*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") - mv rrplugins*-linux*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") + mv libroadrunner*-linux*.whl $(echo libroadrunner*-linux*.whl | sed "s/-linux/-manylinux2014/g") + mv rrplugins*-linux*.whl $(echo rrplugins*-linux*.whl | sed "s/-linux/-manylinux2014/g") fi @@ -573,11 +573,11 @@ jobs: rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then - mv libroadrunner*universal*.whl $(echo libroadrunner*.whl | sed "s/universal2/${host_architecture}/g") - mv rrplugins*universal*.whl $(echo rrplugins*.whl | sed "s/universal2/${host_architecture}/g") + mv libroadrunner*universal*.whl $(echo libroadrunner*universal*.whl | sed "s/universal2/${host_architecture}/g") + mv rrplugins*universal*.whl $(echo rrplugins*universal*.whl | sed "s/universal2/${host_architecture}/g") elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then - mv libroadrunner*-linux*.whl $(echo libroadrunner*.whl | sed "s/-linux/-manylinux2014/g") - mv rrplugins*-linux*.whl $(echo rrplugins*.whl | sed "s/-linux/-manylinux2014/g") + mv libroadrunner*-linux*.whl $(echo libroadrunner*-linux*.whl | sed "s/-linux/-manylinux2014/g") + mv rrplugins*-linux*.whl $(echo rrplugins*-linux*.whl | sed "s/-linux/-manylinux2014/g") fi From 8494ed2dff16c299cf2a398989537e7eab499da1 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Mon, 13 May 2024 21:01:34 -0700 Subject: [PATCH 58/77] Smallish fixes. --- .github/workflows/main.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8d947a63b8..da68e64fc5 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -537,7 +537,7 @@ jobs: ${{ env.python_v3_exe }} -m build --wheel rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist - if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then + if [ "${{ matrix.platform.os_name }}" == 'macos_latest' ]; then mv libroadrunner*universal*.whl $(echo libroadrunner*universal*.whl | sed "s/universal2/${host_architecture}/g") mv rrplugins*universal*.whl $(echo rrplugins*universal*.whl | sed "s/universal2/${host_architecture}/g") elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then @@ -558,10 +558,12 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner - ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress --tests-regex python_tests + if [ "${{ matrix.platform.os_name }}" != 'macos-latest' ]; then + ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress --tests-regex python_tests + fi - - name: Create third Python wheel artifacts and rename + - name: Create fourth Python wheel artifacts and rename if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' shell: bash run: | @@ -591,7 +593,7 @@ jobs: - name: Upload RoadRunner Python wheel artifacts if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v3 with: name: ${{ env.roadrunner_python_wheel_artifacts_name }} path: ${{ env.roadrunner_python_wheel_artifacts_file }} From d279b8121e330f8f7cdd56192eb7a199152d05f0 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 14 May 2024 07:46:21 -0700 Subject: [PATCH 59/77] Only macos-latest claims 'universal'. --- .github/workflows/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index da68e64fc5..66ab23cf20 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -484,7 +484,7 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE}/install-roadrunner/dist - if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then + if [ "${{ matrix.platform.os_name }}" == 'macos_latest' ]; then mv libroadrunner*universal*.whl $(echo libroadrunner*universal*.whl | sed "s/universal2/${host_architecture}/g") mv rrplugins*universal*.whl $(echo rrplugins*universal*.whl | sed "s/universal2/${host_architecture}/g") elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then @@ -510,7 +510,7 @@ jobs: ${{ env.python_v2_exe }} -m build --wheel rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist - if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then + if [ "${{ matrix.platform.os_name }}" == 'macos_latest' ]; then mv libroadrunner*universal*.whl $(echo libroadrunner*universal*.whl | sed "s/universal2/${host_architecture}/g") mv rrplugins*universal*.whl $(echo rrplugins*universal*.whl | sed "s/universal2/${host_architecture}/g") elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then @@ -574,7 +574,7 @@ jobs: ${{ env.python_v4_exe }} -m build --wheel rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist - if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then + if [ "${{ matrix.platform.os_name }}" == 'macos_latest' ]; then mv libroadrunner*universal*.whl $(echo libroadrunner*universal*.whl | sed "s/universal2/${host_architecture}/g") mv rrplugins*universal*.whl $(echo rrplugins*universal*.whl | sed "s/universal2/${host_architecture}/g") elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then From bb18a6cac7c59b8e2bd9301d9d3234428bb34ab8 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 14 May 2024 09:27:41 -0700 Subject: [PATCH 60/77] Remove previous install before re-building. Problem on manylinux where the setup.py was changed but not overwritten. This is overkill, but hopefully will prevent any such similar problems. --- .github/workflows/main.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 66ab23cf20..a812cfe55a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -495,6 +495,7 @@ jobs: - name: Rebuild RoadRunner with second Python version shell: bash run: | + rm -r -f ${RUNNER_WORKSPACE}/install-roadrunner cd ${RUNNER_WORKSPACE}/build-roadrunner cmake $GITHUB_WORKSPACE -DPython_ROOT_DIR=${{ env.python_v2_dir }} cmake --build . --target install --config ${{ matrix.platform.build_type }} @@ -522,6 +523,7 @@ jobs: - name: Rebuild RoadRunner with third Python version shell: bash run: | + rm -r -f ${RUNNER_WORKSPACE}/install-roadrunner cd ${RUNNER_WORKSPACE}/build-roadrunner cmake $GITHUB_WORKSPACE -DPython_ROOT_DIR=${{ env.python_v3_dir }} cmake --build . --target install --config ${{ matrix.platform.build_type }} @@ -549,6 +551,7 @@ jobs: - name: Rebuild RoadRunner with fourth Python version shell: bash run: | + rm -r -f ${RUNNER_WORKSPACE}/install-roadrunner cd ${RUNNER_WORKSPACE}/build-roadrunner cmake $GITHUB_WORKSPACE -DPython_ROOT_DIR=${{ env.python_v4_dir }} cmake --build . --target install --config ${{ matrix.platform.build_type }} From b57477bd47818048eea410a677a6befa1cb944e2 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 14 May 2024 11:41:06 -0700 Subject: [PATCH 61/77] Move to macos13; don't delete old wheels. --- .github/workflows/main.yml | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a812cfe55a..8242699659 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -10,7 +10,7 @@ on: jobs: build_on_OSs: - name: Build RoadRunner on ${{ matrix.platform.name }}-python${{ matrix.python_version.version }} + name: ${{ matrix.platform.name }} roadrunner build strategy: fail-fast: false matrix: @@ -27,15 +27,15 @@ jobs: build_type: Debug build_python: OFF write_to_env: ">> $GITHUB_ENV" - - name: macos-latest-release + - name: macos-13-release os_type: macos - os_name: macos-latest + os_name: macos-13 build_type: Release build_python: ON write_to_env: ">> $GITHUB_ENV" - - name: macos-latest-debug + - name: macos-13-debug os_type: macos - os_name: macos-latest + os_name: macos-13 build_type: Debug build_python: OFF write_to_env: ">> $GITHUB_ENV" @@ -86,6 +86,7 @@ jobs: steps: - name: Setup python versions + # v1 should be the earliest supported version, and v4 the latest. Tests are only run on v1 and v4. run: | echo "python_v1=3.9" ${{ matrix.platform.write_to_env }} echo "python_v2=3.10" ${{ matrix.platform.write_to_env }} @@ -433,7 +434,7 @@ jobs: run: | cd ${RUNNER_WORKSPACE}/build-roadrunner # ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress - if [ "${{ matrix.platform.os_name }}" != 'macos-latest' ]; then + if [ "${{ matrix.platform.os_name }}" != 'macos-13' ]; then ctest --output-on-failure --verbose --extra-verbose --progress fi @@ -483,6 +484,7 @@ jobs: if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' shell: bash run: | + mkdir ${RUNNER_WORKSPACE}/wheels/ cd ${RUNNER_WORKSPACE}/install-roadrunner/dist if [ "${{ matrix.platform.os_name }}" == 'macos_latest' ]; then mv libroadrunner*universal*.whl $(echo libroadrunner*universal*.whl | sed "s/universal2/${host_architecture}/g") @@ -491,6 +493,7 @@ jobs: mv libroadrunner*-linux*.whl $(echo libroadrunner*-linux*.whl | sed "s/-linux/-manylinux2014/g") mv rrplugins*-linux*.whl $(echo rrplugins*-linux*.whl | sed "s/-linux/-manylinux2014/g") fi + mv * ${RUNNER_WORKSPACE}/wheels/ - name: Rebuild RoadRunner with second Python version shell: bash @@ -518,6 +521,7 @@ jobs: mv libroadrunner*-linux*.whl $(echo libroadrunner*-linux*.whl | sed "s/-linux/-manylinux2014/g") mv rrplugins*-linux*.whl $(echo rrplugins*-linux*.whl | sed "s/-linux/-manylinux2014/g") fi + mv * ${RUNNER_WORKSPACE}/wheels/ - name: Rebuild RoadRunner with third Python version @@ -546,6 +550,7 @@ jobs: mv libroadrunner*-linux*.whl $(echo libroadrunner*-linux*.whl | sed "s/-linux/-manylinux2014/g") mv rrplugins*-linux*.whl $(echo rrplugins*-linux*.whl | sed "s/-linux/-manylinux2014/g") fi + mv * ${RUNNER_WORKSPACE}/wheels/ - name: Rebuild RoadRunner with fourth Python version @@ -561,7 +566,7 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner - if [ "${{ matrix.platform.os_name }}" != 'macos-latest' ]; then + if [ "${{ matrix.platform.os_name }}" != 'macos-13' ]; then ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress --tests-regex python_tests fi @@ -584,6 +589,7 @@ jobs: mv libroadrunner*-linux*.whl $(echo libroadrunner*-linux*.whl | sed "s/-linux/-manylinux2014/g") mv rrplugins*-linux*.whl $(echo rrplugins*-linux*.whl | sed "s/-linux/-manylinux2014/g") fi + mv * ${RUNNER_WORKSPACE}/wheels/ - name: Set Python wheel artifacts path and name @@ -592,7 +598,7 @@ jobs: run: | cd ${RUNNER_WORKSPACE} echo "roadrunner_python_wheel_artifacts_name=${{ matrix.platform.name }}-python-wheels" >> "${GITHUB_ENV}" - echo "roadrunner_python_wheel_artifacts_file=${RUNNER_WORKSPACE}/install-roadrunner/dist/" >> "${GITHUB_ENV}" + echo "roadrunner_python_wheel_artifacts_file=${RUNNER_WORKSPACE}/wheels/" >> "${GITHUB_ENV}" - name: Upload RoadRunner Python wheel artifacts if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' From 02ae195f3bd5f8739aa76e4c7a8c2b49196a3922 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 14 May 2024 12:07:47 -0700 Subject: [PATCH 62/77] 13 is too early; use 14. --- .github/workflows/main.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 8242699659..d3c7a7dcd1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -27,15 +27,15 @@ jobs: build_type: Debug build_python: OFF write_to_env: ">> $GITHUB_ENV" - - name: macos-13-release + - name: macos-14-release os_type: macos - os_name: macos-13 + os_name: macos-14 build_type: Release build_python: ON write_to_env: ">> $GITHUB_ENV" - - name: macos-13-debug + - name: macos-14-debug os_type: macos - os_name: macos-13 + os_name: macos-14 build_type: Debug build_python: OFF write_to_env: ">> $GITHUB_ENV" @@ -434,7 +434,7 @@ jobs: run: | cd ${RUNNER_WORKSPACE}/build-roadrunner # ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress - if [ "${{ matrix.platform.os_name }}" != 'macos-13' ]; then + if [ "${{ matrix.platform.os_name }}" != 'macos-14' ]; then ctest --output-on-failure --verbose --extra-verbose --progress fi @@ -566,7 +566,7 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner - if [ "${{ matrix.platform.os_name }}" != 'macos-13' ]; then + if [ "${{ matrix.platform.os_name }}" != 'macos-14' ]; then ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress --tests-regex python_tests fi From f1aa27b4077c51352fbe02710f63b6a6e61694ea Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 14 May 2024 14:07:28 -0700 Subject: [PATCH 63/77] Change how to find root directory. --- .github/workflows/main.yml | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d3c7a7dcd1..e1694cf8c4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -438,10 +438,6 @@ jobs: ctest --output-on-failure --verbose --extra-verbose --progress fi - - name: Workaround actions/upload-artifact#176 - run: | - echo "artifacts_root=$(realpath ..)" ${{ matrix.platform.write_to_env }} - - name: Set artifacts path and name shell: bash run: | @@ -461,7 +457,7 @@ jobs: os_name_without_build_type="${os_name%%-*}" echo "artifacts_name=roadrunner-${os_name_without_build_type}-${host_architecture}-${{ matrix.platform.build_type }}" >> "${GITHUB_ENV}" fi - echo "artifacts_path=${{ env.artifacts_root }}/install-roadrunner" >> "${GITHUB_ENV}" + echo "artifacts_path=${RUNNER_WORKSPACE}/install-roadrunner" >> "${GITHUB_ENV}" - name: Upload roadrunner binaries uses: actions/upload-artifact@v3 From ffc867ce93fa22212f538cbbe8341d94b7a882dd Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 14 May 2024 14:27:33 -0700 Subject: [PATCH 64/77] Rename files based on filenames, not OS. From https://stackoverflow.com/questions/6363441/check-if-a-file-exists-with-a-wildcard-in-a-shell-script --- .github/workflows/main.yml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e1694cf8c4..cb89172a08 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -429,7 +429,7 @@ jobs: cmake --build . --target install --config ${{ matrix.platform.build_type }} - name: Run all RoadRunner tests - if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' && matrix.platform.os_name != 'macos_latest' + if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner @@ -482,10 +482,10 @@ jobs: run: | mkdir ${RUNNER_WORKSPACE}/wheels/ cd ${RUNNER_WORKSPACE}/install-roadrunner/dist - if [ "${{ matrix.platform.os_name }}" == 'macos_latest' ]; then + if compgen -G "*universal*whl" > /dev/null; then mv libroadrunner*universal*.whl $(echo libroadrunner*universal*.whl | sed "s/universal2/${host_architecture}/g") mv rrplugins*universal*.whl $(echo rrplugins*universal*.whl | sed "s/universal2/${host_architecture}/g") - elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then + elif compgen -G "*-linux*whl" > /dev/null; then mv libroadrunner*-linux*.whl $(echo libroadrunner*-linux*.whl | sed "s/-linux/-manylinux2014/g") mv rrplugins*-linux*.whl $(echo rrplugins*-linux*.whl | sed "s/-linux/-manylinux2014/g") fi @@ -510,10 +510,10 @@ jobs: ${{ env.python_v2_exe }} -m build --wheel rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist - if [ "${{ matrix.platform.os_name }}" == 'macos_latest' ]; then + if compgen -G "*universal*whl" > /dev/null; then mv libroadrunner*universal*.whl $(echo libroadrunner*universal*.whl | sed "s/universal2/${host_architecture}/g") mv rrplugins*universal*.whl $(echo rrplugins*universal*.whl | sed "s/universal2/${host_architecture}/g") - elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then + elif compgen -G "*-linux*whl" > /dev/null; then mv libroadrunner*-linux*.whl $(echo libroadrunner*-linux*.whl | sed "s/-linux/-manylinux2014/g") mv rrplugins*-linux*.whl $(echo rrplugins*-linux*.whl | sed "s/-linux/-manylinux2014/g") fi @@ -539,10 +539,10 @@ jobs: ${{ env.python_v3_exe }} -m build --wheel rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist - if [ "${{ matrix.platform.os_name }}" == 'macos_latest' ]; then + if compgen -G "*universal*whl" > /dev/null; then mv libroadrunner*universal*.whl $(echo libroadrunner*universal*.whl | sed "s/universal2/${host_architecture}/g") mv rrplugins*universal*.whl $(echo rrplugins*universal*.whl | sed "s/universal2/${host_architecture}/g") - elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then + elif compgen -G "*-linux*whl" > /dev/null; then mv libroadrunner*-linux*.whl $(echo libroadrunner*-linux*.whl | sed "s/-linux/-manylinux2014/g") mv rrplugins*-linux*.whl $(echo rrplugins*-linux*.whl | sed "s/-linux/-manylinux2014/g") fi @@ -558,7 +558,7 @@ jobs: cmake --build . --target install --config ${{ matrix.platform.build_type }} - name: Run RoadRunner tests on fourth Python version - if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' && matrix.platform.os_name != 'macos_latest' + if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner @@ -578,10 +578,10 @@ jobs: ${{ env.python_v4_exe }} -m build --wheel rm -r -f build cd ${RUNNER_WORKSPACE}/install-roadrunner/dist - if [ "${{ matrix.platform.os_name }}" == 'macos_latest' ]; then + if compgen -G "*universal*whl" > /dev/null; then mv libroadrunner*universal*.whl $(echo libroadrunner*universal*.whl | sed "s/universal2/${host_architecture}/g") mv rrplugins*universal*.whl $(echo rrplugins*universal*.whl | sed "s/universal2/${host_architecture}/g") - elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then + elif compgen -G "*-linux*whl" > /dev/null; then mv libroadrunner*-linux*.whl $(echo libroadrunner*-linux*.whl | sed "s/-linux/-manylinux2014/g") mv rrplugins*-linux*.whl $(echo rrplugins*-linux*.whl | sed "s/-linux/-manylinux2014/g") fi From 037cc677ae9262ae2773f2e4c101b5cd65d116a7 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 14 May 2024 15:43:49 -0700 Subject: [PATCH 65/77] Don't rebuild with different pythons if python is off. Also, run final python tests if 'python' and 'tests' are on; don't check 'Release'. --- .github/workflows/main.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index cb89172a08..9824974a24 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -429,7 +429,7 @@ jobs: cmake --build . --target install --config ${{ matrix.platform.build_type }} - name: Run all RoadRunner tests - if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' + if: matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner @@ -492,6 +492,7 @@ jobs: mv * ${RUNNER_WORKSPACE}/wheels/ - name: Rebuild RoadRunner with second Python version + if: matrix.platform.build_python == 'ON' shell: bash run: | rm -r -f ${RUNNER_WORKSPACE}/install-roadrunner @@ -521,6 +522,7 @@ jobs: - name: Rebuild RoadRunner with third Python version + if: matrix.platform.build_python == 'ON' shell: bash run: | rm -r -f ${RUNNER_WORKSPACE}/install-roadrunner @@ -550,6 +552,7 @@ jobs: - name: Rebuild RoadRunner with fourth Python version + if: matrix.platform.build_python == 'ON' shell: bash run: | rm -r -f ${RUNNER_WORKSPACE}/install-roadrunner @@ -558,7 +561,7 @@ jobs: cmake --build . --target install --config ${{ matrix.platform.build_type }} - name: Run RoadRunner tests on fourth Python version - if : matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' + if: matrix.platform.build_python == 'ON' && matrix.build_tests == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner From 7aa3c764a08481fd3a2cac44a3a004dd229acef5 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 21 May 2024 12:27:07 -0700 Subject: [PATCH 66/77] Updates from Adel's suggestions. * Use bash more often; explicitly use Windows 'pipe' when needed. * Change python_v#_name to v# instead of referencing python version. * Split C tests from Python tests. * Include roadrunner version number in name of artifacts. --- .github/workflows/main.yml | 132 ++++++++++++++++++++----------------- 1 file changed, 71 insertions(+), 61 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9824974a24..fad6230a94 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,56 +20,47 @@ jobs: os_name: macos-11 build_type: Release build_python: ON - write_to_env: ">> $GITHUB_ENV" - name: macos-11-debug os_type: macos os_name: macos-11 build_type: Debug build_python: OFF - write_to_env: ">> $GITHUB_ENV" - name: macos-14-release os_type: macos os_name: macos-14 build_type: Release build_python: ON - write_to_env: ">> $GITHUB_ENV" - name: macos-14-debug os_type: macos os_name: macos-14 build_type: Debug build_python: OFF - write_to_env: ">> $GITHUB_ENV" - name: ubuntu-latest-release os_type: ubuntu os_name: ubuntu-latest build_type: Release build_python: ON - write_to_env: ">> $GITHUB_ENV" - name: ubuntu-latest-debug os_type: ubuntu os_name: ubuntu-latest build_type: Debug build_python: OFF - write_to_env: ">> $GITHUB_ENV" - name: windows-latest-release os_type: windows os_name: windows-latest build_type: Release build_python: ON - write_to_env: "| Out-File -FilePath $env:GITHUB_ENV -Append" - name: windows-latest-debug os_type: windows os_name: windows-latest build_type: Debug build_python: OFF - write_to_env: "| Out-File -FilePath $env:GITHUB_ENV -Append" - name: manylinux2014-release os_type: manylinux os_name: ubuntu-latest container_image: quay.io/pypa/manylinux2014_x86_64 build_type: Release build_python: ON - write_to_env: ">> $GITHUB_ENV" libroadrunner_deps_owner: [ "sys-bio" ] libroadrunner_deps_repo: [ "libroadrunner-deps" ] libroadrunner_deps_name: [ "libroadrunner-deps" ] @@ -86,16 +77,17 @@ jobs: steps: - name: Setup python versions + shell: bash # v1 should be the earliest supported version, and v4 the latest. Tests are only run on v1 and v4. run: | - echo "python_v1=3.9" ${{ matrix.platform.write_to_env }} - echo "python_v2=3.10" ${{ matrix.platform.write_to_env }} - echo "python_v3=3.11" ${{ matrix.platform.write_to_env }} - echo "python_v4=3.12" ${{ matrix.platform.write_to_env }} - echo "python_v1_name=39" ${{ matrix.platform.write_to_env }} - echo "python_v2_name=310" ${{ matrix.platform.write_to_env }} - echo "python_v3_name=311" ${{ matrix.platform.write_to_env }} - echo "python_v4_name=312" ${{ matrix.platform.write_to_env }} + echo "python_v1=3.9" >> $GITHUB_ENV + echo "python_v2=3.10" >> $GITHUB_ENV + echo "python_v3=3.11" >> $GITHUB_ENV + echo "python_v4=3.12" >> $GITHUB_ENV + echo "python_v1_name=v1" >> $GITHUB_ENV + echo "python_v2_name=v2" >> $GITHUB_ENV + echo "python_v3_name=v3" >> $GITHUB_ENV + echo "python_v4_name=v4" >> $GITHUB_ENV - name: Checkout RoadRunner if: matrix.platform.os_type == 'manylinux' @@ -132,14 +124,14 @@ jobs: /Miniconda3/bin/conda init && bash ~/.bashrc && . ~/.bashrc cd ${RUNNER_WORKSPACE} # sed -i 's/PKG_CONFIG openssl /PKG_CONFIG openssl11 /g' configure - echo "python_v1_exe=/Miniconda3/envs/${{ env.python_v1_name }}/bin/python" ${{ matrix.platform.write_to_env }} - echo "python_v1_dir=/Miniconda3/envs/${{ env.python_v1_name }}" ${{ matrix.platform.write_to_env }} - echo "python_v2_exe=/Miniconda3/envs/${{ env.python_v2_name }}/bin/python" ${{ matrix.platform.write_to_env }} - echo "python_v2_dir=/Miniconda3/envs/${{ env.python_v2_name }}" ${{ matrix.platform.write_to_env }} - echo "python_v3_exe=/Miniconda3/envs/${{ env.python_v3_name }}/bin/python" ${{ matrix.platform.write_to_env }} - echo "python_v3_dir=/Miniconda3/envs/${{ env.python_v3_name }}" ${{ matrix.platform.write_to_env }} - echo "python_v4_exe=/Miniconda3/envs/${{ env.python_v4_name }}/bin/python" ${{ matrix.platform.write_to_env }} - echo "python_v4_dir=/Miniconda3/envs/${{ env.python_v4_name }}" ${{ matrix.platform.write_to_env }} + echo "python_v1_exe=/Miniconda3/envs/${{ env.python_v1_name }}/bin/python" >> $GITHUB_ENV + echo "python_v1_dir=/Miniconda3/envs/${{ env.python_v1_name }}" >> $GITHUB_ENV + echo "python_v2_exe=/Miniconda3/envs/${{ env.python_v2_name }}/bin/python" >> $GITHUB_ENV + echo "python_v2_dir=/Miniconda3/envs/${{ env.python_v2_name }}" >> $GITHUB_ENV + echo "python_v3_exe=/Miniconda3/envs/${{ env.python_v3_name }}/bin/python" >> $GITHUB_ENV + echo "python_v3_dir=/Miniconda3/envs/${{ env.python_v3_name }}" >> $GITHUB_ENV + echo "python_v4_exe=/Miniconda3/envs/${{ env.python_v4_name }}/bin/python" >> $GITHUB_ENV + echo "python_v4_dir=/Miniconda3/envs/${{ env.python_v4_name }}" >> $GITHUB_ENV - name: Setup Windows Python paths if: matrix.platform.build_python == 'ON' && matrix.platform.os_type == 'windows' @@ -150,49 +142,50 @@ jobs: cd ../../${{ env.python_v1 }}*/x64/ $pythonWinExecutable = $(realpath .) $pythonWinExecutable = $pythonWinExecutable -replace $pattern, '/' - echo "python_v1_exe=$pythonWinExecutable/python.exe" ${{ matrix.platform.write_to_env }} - echo "python_v1_dir=$pythonWinExecutable" ${{ matrix.platform.write_to_env }} + echo "python_v1_exe=$pythonWinExecutable/python.exe" | Out-File -FilePath $env:GITHUB_ENV -Append + echo "python_v1_dir=$pythonWinExecutable" | Out-File -FilePath $env:GITHUB_ENV -Append cd ../../${{ env.python_v2 }}*/x64/ $pythonWinExecutable = $(realpath .) $pythonWinExecutable = $pythonWinExecutable -replace $pattern, '/' - echo "python_v2_exe=$pythonWinExecutable/python.exe" ${{ matrix.platform.write_to_env }} - echo "python_v2_dir=$pythonWinExecutable" ${{ matrix.platform.write_to_env }} + echo "python_v2_exe=$pythonWinExecutable/python.exe" | Out-File -FilePath $env:GITHUB_ENV -Append + echo "python_v2_dir=$pythonWinExecutable" | Out-File -FilePath $env:GITHUB_ENV -Append cd ../../${{ env.python_v3 }}*/x64/ $pythonWinExecutable = $(realpath .) $pythonWinExecutable = $pythonWinExecutable -replace $pattern, '/' - echo "python_v3_exe=$pythonWinExecutable/python.exe" ${{ matrix.platform.write_to_env }} - echo "python_v3_dir=$pythonWinExecutable" ${{ matrix.platform.write_to_env }} + echo "python_v3_exe=$pythonWinExecutable/python.exe" | Out-File -FilePath $env:GITHUB_ENV -Append + echo "python_v3_dir=$pythonWinExecutable" | Out-File -FilePath $env:GITHUB_ENV -Append cd ../../${{ env.python_v4 }}*/x64/ $pythonWinExecutable = $(realpath .) $pythonWinExecutable = $pythonWinExecutable -replace $pattern, '/' - echo "python_v4_exe=$pythonWinExecutable/python.exe" ${{ matrix.platform.write_to_env }} - echo "python_v4_dir=$pythonWinExecutable" ${{ matrix.platform.write_to_env }} + echo "python_v4_exe=$pythonWinExecutable/python.exe" | Out-File -FilePath $env:GITHUB_ENV -Append + echo "python_v4_dir=$pythonWinExecutable" | Out-File -FilePath $env:GITHUB_ENV -Append - name: Setup non-windows Python paths if: matrix.platform.build_python == 'ON' && matrix.platform.os_type != 'windows' && matrix.platform.os_type != 'manylinux' + shell: bash run: | cd ${{ env.pythonLocation }} export py_lastdir="$(basename $PWD)" cd ../../${{ env.python_v1 }}*/$py_lastdir/ ls - echo "python_v1_exe=$PWD/python" ${{ matrix.platform.write_to_env }} - echo "python_v1_dir=$PWD" ${{ matrix.platform.write_to_env }} + echo "python_v1_exe=$PWD/python" >> $GITHUB_ENV + echo "python_v1_dir=$PWD" >> $GITHUB_ENV cd ../../${{ env.python_v2 }}*/$py_lastdir/ - echo "python_v2_exe=$PWD/python" ${{ matrix.platform.write_to_env }} - echo "python_v2_dir=$PWD" ${{ matrix.platform.write_to_env }} + echo "python_v2_exe=$PWD/python" >> $GITHUB_ENV + echo "python_v2_dir=$PWD" >> $GITHUB_ENV cd ../../${{ env.python_v3 }}*/$py_lastdir/ - echo "python_v3_exe=$PWD/python" ${{ matrix.platform.write_to_env }} - echo "python_v3_dir=$PWD" ${{ matrix.platform.write_to_env }} + echo "python_v3_exe=$PWD/python" >> $GITHUB_ENV + echo "python_v3_dir=$PWD" >> $GITHUB_ENV cd ../../${{ env.python_v4 }}*/$py_lastdir/ - echo "python_v4_exe=$PWD/python" ${{ matrix.platform.write_to_env }} - echo "python_v4_dir=$PWD" ${{ matrix.platform.write_to_env }} + echo "python_v4_exe=$PWD/python" >> $GITHUB_ENV + echo "python_v4_dir=$PWD" >> $GITHUB_ENV - name: Install Python dependencies @@ -249,9 +242,9 @@ jobs: shell: bash run: | architecture=$(uname -m) - echo "host_architecture=$architecture" >> "${GITHUB_ENV}" + echo "host_architecture=$architecture" >> $GITHUB_ENV if [ "${{ matrix.platform.os_type }}" == 'macos' ]; then - echo "OSX_ARCHITECTURES=$architecture" >> "${GITHUB_ENV}" + echo "OSX_ARCHITECTURES=$architecture" >> $GITHUB_ENV fi - name: Install ccache @@ -291,8 +284,8 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE} - echo "CCACHE_DIR=${RUNNER_WORKSPACE}/.ccache" >> "${GITHUB_ENV}" - echo "COMPILER_LAUNCHER=ccache" >> "${GITHUB_ENV}" + echo "CCACHE_DIR=${RUNNER_WORKSPACE}/.ccache" >> $GITHUB_ENV + echo "COMPILER_LAUNCHER=ccache" >> $GITHUB_ENV - name: Cache ccache files on non-Windows if: matrix.platform.os_type != 'windows' @@ -322,7 +315,7 @@ jobs: ./configure --prefix=${RUNNER_WORKSPACE}/swig/install-swig make make install - echo SWIG_DIR="-DSWIG_EXECUTABLE=${RUNNER_WORKSPACE}/swig/install-swig/bin/swig" >> "${GITHUB_ENV}" + echo SWIG_DIR="-DSWIG_EXECUTABLE=${RUNNER_WORKSPACE}/swig/install-swig/bin/swig" >> $GITHUB_ENV elif [ "${{ matrix.platform.os_type }}" == 'windows' ]; then mkdir -p swig cd swig @@ -342,9 +335,9 @@ jobs: ./configure --disable-dependency-tracking --prefix=${RUNNER_WORKSPACE}/swig/install-swig make make install - echo SWIG_DIR="-DSWIG_EXECUTABLE=${RUNNER_WORKSPACE}/swig/install-swig/bin/swig" >> "${GITHUB_ENV}" + echo SWIG_DIR="-DSWIG_EXECUTABLE=${RUNNER_WORKSPACE}/swig/install-swig/bin/swig" >> $GITHUB_ENV fi - echo PYTHON_DIR="-DPython_ROOT_DIR=${{ env.python_v1_dir }}" >> "${GITHUB_ENV}" + echo PYTHON_DIR="-DPython_ROOT_DIR=${{ env.python_v1_dir }}" >> $GITHUB_ENV - name: Download LibRoadRunner Dependencies binaries shell: bash @@ -369,7 +362,7 @@ jobs: curl -LO "https://github.com/${{ matrix.libroadrunner_deps_owner }}/${{ matrix.libroadrunner_deps_repo }}/releases/download/${{ matrix.libroadrunner_deps_release_version }}/$binary_file_name.zip" unzip -q $binary_file_name.zip rm $binary_file_name.zip - echo RR_DEPENDENCIES_INSTALL_PREFIX="${RUNNER_WORKSPACE}/${{ matrix.libroadrunner_deps_name }}-binaries" >> "${GITHUB_ENV}" + echo RR_DEPENDENCIES_INSTALL_PREFIX="${RUNNER_WORKSPACE}/${{ matrix.libroadrunner_deps_name }}-binaries" >> $GITHUB_ENV - name: Download LLVM binaries shell: bash @@ -394,7 +387,7 @@ jobs: curl -LO "https://github.com/${{ matrix.llvm_owner }}/${{ matrix.llvm_repo }}/releases/download/${{ matrix.llvm_release_version }}/$binary_file_name.zip" unzip -q $binary_file_name.zip rm $binary_file_name.zip - echo LLVM_INSTALL_PREFIX="${RUNNER_WORKSPACE}/${{ matrix.llvm_name }}-binaries" >> "${GITHUB_ENV}" + echo LLVM_INSTALL_PREFIX="${RUNNER_WORKSPACE}/${{ matrix.llvm_name }}-binaries" >> $GITHUB_ENV # make llvm-config executable chmod a+x ${RUNNER_WORKSPACE}/${{ matrix.llvm_name }}-binaries/bin/llvm-config @@ -428,16 +421,33 @@ jobs: cd ${RUNNER_WORKSPACE}/build-roadrunner cmake --build . --target install --config ${{ matrix.platform.build_type }} - - name: Run all RoadRunner tests + - name: Run C RoadRunner tests if: matrix.platform.build_type == 'Release' && matrix.build_tests == 'ON' shell: bash run: | cd ${RUNNER_WORKSPACE}/build-roadrunner - # ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress + # ctest --output-on-failure --verbose --extra-verbose --progress --exclude-regex python_tests if [ "${{ matrix.platform.os_name }}" != 'macos-14' ]; then - ctest --output-on-failure --verbose --extra-verbose --progress + ctest --output-on-failure --verbose --extra-verbose --progress --exclude-regex python_tests fi + - name: Run Python Roadrunner tests (first Python version) + if: matrix.platform.build_python == 'ON' && matrix.build_tests == 'ON' + shell: bash + run: | + cd ${RUNNER_WORKSPACE}/build-roadrunner + if [ "${{ matrix.platform.os_name }}" != 'macos-14' ]; then + ctest -C ${{ matrix.platform.build_type }} --output-on-failure --verbose --extra-verbose --progress --tests-regex python_tests + fi + + + - name: Save roadrunner version + shell: bash + run: | + cd ${RUNNER_WORKSPACE}/install-roadrunner + rrversion = $(cat VERSION.txt) + echo "roadrunner_version=$rrversion" >> ${GITHUB_ENV} + - name: Set artifacts path and name shell: bash run: | @@ -445,19 +455,19 @@ jobs: artifacts_name="" if [ "${{ matrix.platform.os_type }}" == 'windows' ]; then compiler_version=$(ls "C:\Program Files\Microsoft Visual Studio") - echo "artifacts_name=roadrunner-${{ matrix.platform.os_type }}-msvc$compiler_version-${host_architecture}-${{ matrix.platform.build_type }}" >> "${GITHUB_ENV}" + echo "artifacts_name=roadrunner-${{ matrix.platform.os_type }}-$roadrunner_version-msvc$compiler_version-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV elif [ "${{ matrix.platform.os_type }}" == 'macos' ]; then os_version=$(sw_vers -productVersion | cut -d '.' -f 1) - echo "artifacts_name=roadrunner-${{ matrix.platform.os_type }}-$os_version-${host_architecture}-${{ matrix.platform.build_type }}" >> "${GITHUB_ENV}" + echo "artifacts_name=roadrunner-${{ matrix.platform.os_type }}-$roadrunner_version-$os_version-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV elif [ "${{ matrix.platform.os_type }}" == 'ubuntu' ]; then os_version=$(lsb_release -rs | cut -d '.' -f 1) - echo "artifacts_name=roadrunner-${{ matrix.platform.os_type }}-$os_version-${host_architecture}-${{ matrix.platform.build_type }}" >> "${GITHUB_ENV}" + echo "artifacts_name=roadrunner-${{ matrix.platform.os_type }}-$roadrunner_version-$os_version-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then os_name="${{ matrix.platform.name }}" os_name_without_build_type="${os_name%%-*}" - echo "artifacts_name=roadrunner-${os_name_without_build_type}-${host_architecture}-${{ matrix.platform.build_type }}" >> "${GITHUB_ENV}" + echo "artifacts_name=roadrunner-$roadrunner_version-${os_name_without_build_type}-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV fi - echo "artifacts_path=${RUNNER_WORKSPACE}/install-roadrunner" >> "${GITHUB_ENV}" + echo "artifacts_path=${RUNNER_WORKSPACE}/install-roadrunner" >> $GITHUB_ENV - name: Upload roadrunner binaries uses: actions/upload-artifact@v3 @@ -560,7 +570,7 @@ jobs: cmake $GITHUB_WORKSPACE -DPython_ROOT_DIR=${{ env.python_v4_dir }} cmake --build . --target install --config ${{ matrix.platform.build_type }} - - name: Run RoadRunner tests on fourth Python version + - name: Run Python Roadrunner tests (fourth Python version) if: matrix.platform.build_python == 'ON' && matrix.build_tests == 'ON' shell: bash run: | @@ -596,8 +606,8 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE} - echo "roadrunner_python_wheel_artifacts_name=${{ matrix.platform.name }}-python-wheels" >> "${GITHUB_ENV}" - echo "roadrunner_python_wheel_artifacts_file=${RUNNER_WORKSPACE}/wheels/" >> "${GITHUB_ENV}" + echo "roadrunner_python_wheel_artifacts_name=${{ matrix.platform.name }}-roadrunner-$roadrunner_version-python-wheels" >> ${GITHUB_ENV} + echo "roadrunner_python_wheel_artifacts_file=${RUNNER_WORKSPACE}/wheels/" >> ${GITHUB_ENV} - name: Upload RoadRunner Python wheel artifacts if: matrix.platform.build_type == 'Release' && matrix.platform.build_python == 'ON' From d838e68408d201c1073235c226154a7d7946ec3d Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 21 May 2024 12:38:08 -0700 Subject: [PATCH 67/77] Fix export typo. --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index fad6230a94..3813802112 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -445,7 +445,7 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE}/install-roadrunner - rrversion = $(cat VERSION.txt) + export rrversion = $(cat VERSION.txt) echo "roadrunner_version=$rrversion" >> ${GITHUB_ENV} - name: Set artifacts path and name From 6c04baecafe289a55ccb9fbb231942eec0a0f8f0 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 21 May 2024 12:43:22 -0700 Subject: [PATCH 68/77] Another syntax fix. --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 3813802112..d3c94715cd 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -445,7 +445,7 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE}/install-roadrunner - export rrversion = $(cat VERSION.txt) + export rrversion="$(cat VERSION.txt)" echo "roadrunner_version=$rrversion" >> ${GITHUB_ENV} - name: Set artifacts path and name From 2ee824f55a1027046da4cf5d10bcdde16c73645f Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 21 May 2024 12:54:00 -0700 Subject: [PATCH 69/77] No VERSION.txt file? --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d3c94715cd..d1fd4a0094 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -445,6 +445,7 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE}/install-roadrunner + ls -l export rrversion="$(cat VERSION.txt)" echo "roadrunner_version=$rrversion" >> ${GITHUB_ENV} From 00be28fa62d40725e436b543c1f154990dd4dad3 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 21 May 2024 13:06:56 -0700 Subject: [PATCH 70/77] Install VERSION.txt always, not just for python builds. --- CMakeLists.txt | 2 ++ wrappers/Python/CMakeLists.txt | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9b56e13368..5998373697 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -661,6 +661,8 @@ install( DESTINATION . ) +install(FILES + "${CMAKE_BINARY_DIR}/VERSION.txt" DESTINATION .) # add FindLLVM to install cmake module path so consuming libraries can use it install(FILES cmake/FindLLVM.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) diff --git a/wrappers/Python/CMakeLists.txt b/wrappers/Python/CMakeLists.txt index 4a47fade9b..ac8f058f9b 100644 --- a/wrappers/Python/CMakeLists.txt +++ b/wrappers/Python/CMakeLists.txt @@ -10,8 +10,7 @@ endif (SWIG_FOUND) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/INSTALL.txt" "${CMAKE_CURRENT_SOURCE_DIR}/setup.py" - "${CMAKE_CURRENT_SOURCE_DIR}/MANIFEST.in" - "${CMAKE_BINARY_DIR}/VERSION.txt" DESTINATION .) + "${CMAKE_CURRENT_SOURCE_DIR}/MANIFEST.in") if (WITH_CONDA_BUILDER) configure_file(conda/meta.yaml.in conda/meta.yaml @ONLY) From f953a04686ab381ea218c35e7c459d69fc4b564d Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 21 May 2024 13:11:45 -0700 Subject: [PATCH 71/77] Try installing VERSION.txt a slightly different way. --- CMakeLists.txt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 5998373697..2a9bdfffeb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -658,11 +658,10 @@ install( FILES NOTICE.txt NEWS.txt + "${CMAKE_BINARY_DIR}/VERSION.txt" DESTINATION . ) -install(FILES - "${CMAKE_BINARY_DIR}/VERSION.txt" DESTINATION .) # add FindLLVM to install cmake module path so consuming libraries can use it install(FILES cmake/FindLLVM.cmake DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake) From e04cc00c3e5c36497e00f11c868490f34bdaebab Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 21 May 2024 13:21:40 -0700 Subject: [PATCH 72/77] Syntax fix. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2a9bdfffeb..3abf210015 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -658,7 +658,7 @@ install( FILES NOTICE.txt NEWS.txt - "${CMAKE_BINARY_DIR}/VERSION.txt" + "${CMAKE_CURRENT_BINARY_DIR}/VERSION.txt" DESTINATION . ) From 01b38882c82c837fc609d5eb8f9b09220e46eeff Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 21 May 2024 13:27:37 -0700 Subject: [PATCH 73/77] Fix another syntax typo. --- wrappers/Python/CMakeLists.txt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/wrappers/Python/CMakeLists.txt b/wrappers/Python/CMakeLists.txt index ac8f058f9b..ef388e4254 100644 --- a/wrappers/Python/CMakeLists.txt +++ b/wrappers/Python/CMakeLists.txt @@ -10,7 +10,9 @@ endif (SWIG_FOUND) install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/INSTALL.txt" "${CMAKE_CURRENT_SOURCE_DIR}/setup.py" - "${CMAKE_CURRENT_SOURCE_DIR}/MANIFEST.in") + "${CMAKE_CURRENT_SOURCE_DIR}/MANIFEST.in" + DESTINATION . +) if (WITH_CONDA_BUILDER) configure_file(conda/meta.yaml.in conda/meta.yaml @ONLY) From 3cfa9163f549b8befdc5c4f7a21afbcc15a0802a Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 21 May 2024 13:35:52 -0700 Subject: [PATCH 74/77] Put version in name in correct place. --- .github/workflows/main.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index d1fd4a0094..e151b1184d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -456,13 +456,13 @@ jobs: artifacts_name="" if [ "${{ matrix.platform.os_type }}" == 'windows' ]; then compiler_version=$(ls "C:\Program Files\Microsoft Visual Studio") - echo "artifacts_name=roadrunner-${{ matrix.platform.os_type }}-$roadrunner_version-msvc$compiler_version-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV + echo "artifacts_name=roadrunner-$roadrunner_version-${{ matrix.platform.os_type }}-msvc$compiler_version-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV elif [ "${{ matrix.platform.os_type }}" == 'macos' ]; then os_version=$(sw_vers -productVersion | cut -d '.' -f 1) - echo "artifacts_name=roadrunner-${{ matrix.platform.os_type }}-$roadrunner_version-$os_version-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV + echo "artifacts_name=roadrunner-$roadrunner_version-${{ matrix.platform.os_type }}-$os_version-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV elif [ "${{ matrix.platform.os_type }}" == 'ubuntu' ]; then os_version=$(lsb_release -rs | cut -d '.' -f 1) - echo "artifacts_name=roadrunner-${{ matrix.platform.os_type }}-$roadrunner_version-$os_version-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV + echo "artifacts_name=roadrunner-$roadrunner_version-${{ matrix.platform.os_type }}-$os_version-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then os_name="${{ matrix.platform.name }}" os_name_without_build_type="${os_name%%-*}" From 9ce0c861087900090427647e7ac5b8cb9a34cede Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 21 May 2024 13:53:50 -0700 Subject: [PATCH 75/77] Be more consistent in naming pattern. --- .github/workflows/main.yml | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e151b1184d..bd9f628813 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -607,7 +607,19 @@ jobs: shell: bash run: | cd ${RUNNER_WORKSPACE} - echo "roadrunner_python_wheel_artifacts_name=${{ matrix.platform.name }}-roadrunner-$roadrunner_version-python-wheels" >> ${GITHUB_ENV} + if [ "${{ matrix.platform.os_type }}" == 'windows' ]; then + compiler_version=$(ls "C:\Program Files\Microsoft Visual Studio") + echo "roadrunner_python_wheel_artifacts_name=roadrunner-$roadrunner_version-python-wheels-${{ matrix.platform.os_type }}-msvc$compiler_version-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV + elif [ "${{ matrix.platform.os_type }}" == 'macos' ]; then + os_version=$(sw_vers -productVersion | cut -d '.' -f 1) + echo "roadrunner_python_wheel_artifacts_name=roadrunner-$roadrunner_version-python-wheels-${{ matrix.platform.os_type }}-$os_version-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV + elif [ "${{ matrix.platform.os_type }}" == 'ubuntu' ]; then + os_version=$(lsb_release -rs | cut -d '.' -f 1) + echo "roadrunner_python_wheel_artifacts_name=roadrunner-$roadrunner_version-python-wheels-${{ matrix.platform.os_type }}-$os_version-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV + elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then + os_name="${{ matrix.platform.name }}" + os_name_without_build_type="${os_name%%-*}" + echo "roadrunner_python_wheel_artifacts_name=roadrunner-$roadrunner_version-python-wheels-${os_name_without_build_type}-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV echo "roadrunner_python_wheel_artifacts_file=${RUNNER_WORKSPACE}/wheels/" >> ${GITHUB_ENV} - name: Upload RoadRunner Python wheel artifacts From dd8993e87df5e8d213f14ecadd2400a2ee1d435e Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 21 May 2024 14:02:40 -0700 Subject: [PATCH 76/77] Rename ubuntu files so we don't use them in any official capacity. --- .github/workflows/main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bd9f628813..e0b3ba8cb8 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -614,8 +614,9 @@ jobs: os_version=$(sw_vers -productVersion | cut -d '.' -f 1) echo "roadrunner_python_wheel_artifacts_name=roadrunner-$roadrunner_version-python-wheels-${{ matrix.platform.os_type }}-$os_version-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV elif [ "${{ matrix.platform.os_type }}" == 'ubuntu' ]; then + # The ubuntu wheel files are named 'manylinux' but are not actually manylinux; they'll only work on ubuntu. os_version=$(lsb_release -rs | cut -d '.' -f 1) - echo "roadrunner_python_wheel_artifacts_name=roadrunner-$roadrunner_version-python-wheels-${{ matrix.platform.os_type }}-$os_version-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV + echo "roadrunner_python_wheel_artifacts_name=DO-NOT-UPLOAD-TEST-ONLY-roadrunner-$roadrunner_version-python-wheels-${{ matrix.platform.os_type }}-$os_version-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV elif [ "${{ matrix.platform.os_type }}" == 'manylinux' ]; then os_name="${{ matrix.platform.name }}" os_name_without_build_type="${os_name%%-*}" From 11bdee3c474911c7f031e1190823a056e8f071e4 Mon Sep 17 00:00:00 2001 From: Lucian Smith Date: Tue, 21 May 2024 14:28:18 -0700 Subject: [PATCH 77/77] endif syntax fix. --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index e0b3ba8cb8..b5c71dec3d 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -621,6 +621,7 @@ jobs: os_name="${{ matrix.platform.name }}" os_name_without_build_type="${os_name%%-*}" echo "roadrunner_python_wheel_artifacts_name=roadrunner-$roadrunner_version-python-wheels-${os_name_without_build_type}-${host_architecture}-${{ matrix.platform.build_type }}" >> $GITHUB_ENV + fi echo "roadrunner_python_wheel_artifacts_file=${RUNNER_WORKSPACE}/wheels/" >> ${GITHUB_ENV} - name: Upload RoadRunner Python wheel artifacts