From 6c8e11ebefead266bfb18d25f941513a25418af2 Mon Sep 17 00:00:00 2001 From: nickbianco Date: Sat, 19 Oct 2024 13:58:01 -0700 Subject: [PATCH 01/15] Add Mac arm64 and Ubuntu 22 CI builds; reorganize continuous integration script --- .github/workflows/continuous_integration.yml | 492 +++++++++++-------- 1 file changed, 287 insertions(+), 205 deletions(-) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index fce0367436..1c3a7992b3 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -15,9 +15,8 @@ on: - '*' jobs: - windows: - name: Windows - + windows2019: + name: Windows 2019 runs-on: windows-2019 steps: @@ -115,53 +114,18 @@ jobs: - name: Upload opensim-core uses: actions/upload-artifact@v4 with: - name: opensim-core-${{ steps.configure.outputs.version }}-win-2019 + name: opensim-core-${{ steps.configure.outputs.version }}-win2019 path: opensim-core-${{ steps.configure.outputs.version }}.zip - # TODO: Must be relative to the workspace? - # - name: Upload opensim-moco dependencies - # uses: actions/upload-artifact@v1.0.0 - # with: - # name: opensim-core-dependencies - # path: opensim_dependencies_install.zip - - # - name: Create release - # id: create-release - # uses: actions/create-release@v1.0.0 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # tag_name: ${{ github.ref }} - # release_name: OpenSim Core ${{ github.ref }} - # draft: true - # prerelease: false - - # - name: Zip opensim-core - # run: | - # 7z a opensim-core-$VERSION.zip opensim-core-${VERSION} - - # - name: Upload release asset - # id: upload-release-asset - # uses: actions/upload-release-asset@v1.0.1 - # env: - # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - # with: - # upload_url: ${{ steps.create-release.outputs.upload_url }} - # asset_path: ./opensim-core-${{ github.ref }}.zip - # asset_name: opensim-core-${{ github.ref }}.zip - # asset_content_type: application/zip - - windows2022_target: - name: Windows2022 [target] - - if: ${{ contains(github.event.pull_request.title, '[perf-win]') || contains(github.event.pull_request.body, '[perf-win]') }} - + windows2022: runs-on: windows-2022 + name: Windows 2022 + + outputs: + version: ${{ steps.configure.outputs.version }} steps: - uses: actions/checkout@v4 - with: - ref: ${{ github.event.pull_request.base.ref }} - name: Install Doxygen # choco install doxygen.portable # <-- too unreliable. @@ -174,7 +138,7 @@ jobs: uses: actions/setup-python@v4 with: python-version: '3.10' - + - name: Install numpy #Need numpy to use SWIG numpy typemaps. run: python3 -m pip install numpy==1.25 @@ -217,7 +181,7 @@ jobs: # TODO: Can remove /WX when we use that in CMakeLists.txt. # Set the CXXFLAGS environment variable to turn warnings into errors. # Skip timing test section included by default. - cmake -E env CXXFLAGS="/WX -DSKIP_TIMING" cmake $env:GITHUB_WORKSPACE -LAH -G"Visual Studio 17 2022" -A x64 -DCMAKE_INSTALL_PREFIX=~/opensim-core-install -DOPENSIM_DEPENDENCIES_DIR=~/opensim_dependencies_install -DOPENSIM_C3D_PARSER=ezc3d -DBUILD_PYTHON_WRAPPING=on -DBUILD_JAVA_WRAPPING=on -DPython3_ROOT_DIR=C:\hostedtoolcache\windows\Python\3.10.11\x64 + cmake -E env CXXFLAGS="/WX -DSKIP_TIMING" cmake $env:GITHUB_WORKSPACE -LAH -G"Visual Studio 17 2022" -A x64 -DCMAKE_INSTALL_PREFIX=~/opensim-core-install -DOPENSIM_DEPENDENCIES_DIR=~/opensim_dependencies_install -DOPENSIM_C3D_PARSER=ezc3d -DOPENSIM_WITH_TROPTER=on -DOPENSIM_WITH_CASADI=on -DBUILD_PYTHON_WRAPPING=on -DBUILD_JAVA_WRAPPING=on -DPython3_ROOT_DIR=C:\hostedtoolcache\windows\Python\3.10.11\x64 $env:match = cmake -L . | Select-String -Pattern OPENSIM_QUALIFIED_VERSION $version = $env:match.split('=')[1] echo $version @@ -242,8 +206,8 @@ jobs: run: | chdir $env:GITHUB_WORKSPACE\\build chdir $env:GITHUB_WORKSPACE - Copy-Item -Path "~/opensim-core-install" -Destination "opensim-core-${{ github.event.pull_request.base.ref }}" -Recurse - 7z a "opensim-core-${{ github.event.pull_request.base.ref }}.zip" "opensim-core-${{ github.event.pull_request.base.ref }}" + Copy-Item -Path "~/opensim-core-install" -Destination "opensim-core-${{ steps.configure.outputs.version }}" -Recurse + 7z a "opensim-core-${{ steps.configure.outputs.version }}.zip" "opensim-core-${{ steps.configure.outputs.version }}" - name: Test Python bindings run: | @@ -256,20 +220,19 @@ jobs: - name: Upload opensim-core uses: actions/upload-artifact@v4 with: - name: opensim-core-${{ github.event.pull_request.base.ref }}-win - path: opensim-core-${{ github.event.pull_request.base.ref }}.zip + name: opensim-core-${{ steps.configure.outputs.version }}-win2022 + path: opensim-core-${{ steps.configure.outputs.version }}.zip - windows2022_source: - + windows2022_perf: runs-on: windows-2022 - - name: ${{ (contains(github.event.pull_request.title, '[perf-win]') || contains(github.event.pull_request.body, '[perf-win]')) && 'Windows2022 [source]' || 'Windows2022' }} + name: Windows 2022 [main] - outputs: - version: ${{ steps.configure.outputs.version }} + if: ${{ contains(github.event.pull_request.title, '[perf-win]') || contains(github.event.pull_request.body, '[perf-win]') }} steps: - uses: actions/checkout@v4 + with: + ref: ${{ github.event.pull_request.base.ref }} - name: Install Doxygen # choco install doxygen.portable # <-- too unreliable. @@ -282,7 +245,7 @@ jobs: uses: actions/setup-python@v4 with: python-version: '3.10' - + - name: Install numpy #Need numpy to use SWIG numpy typemaps. run: python3 -m pip install numpy==1.25 @@ -325,7 +288,7 @@ jobs: # TODO: Can remove /WX when we use that in CMakeLists.txt. # Set the CXXFLAGS environment variable to turn warnings into errors. # Skip timing test section included by default. - cmake -E env CXXFLAGS="/WX -DSKIP_TIMING" cmake $env:GITHUB_WORKSPACE -LAH -G"Visual Studio 17 2022" -A x64 -DCMAKE_INSTALL_PREFIX=~/opensim-core-install -DOPENSIM_DEPENDENCIES_DIR=~/opensim_dependencies_install -DOPENSIM_C3D_PARSER=ezc3d -DOPENSIM_WITH_TROPTER=on -DOPENSIM_WITH_CASADI=on -DBUILD_PYTHON_WRAPPING=on -DBUILD_JAVA_WRAPPING=on -DPython3_ROOT_DIR=C:\hostedtoolcache\windows\Python\3.10.11\x64 + cmake -E env CXXFLAGS="/WX -DSKIP_TIMING" cmake $env:GITHUB_WORKSPACE -LAH -G"Visual Studio 17 2022" -A x64 -DCMAKE_INSTALL_PREFIX=~/opensim-core-install -DOPENSIM_DEPENDENCIES_DIR=~/opensim_dependencies_install -DOPENSIM_C3D_PARSER=ezc3d -DBUILD_PYTHON_WRAPPING=on -DBUILD_JAVA_WRAPPING=on -DPython3_ROOT_DIR=C:\hostedtoolcache\windows\Python\3.10.11\x64 $env:match = cmake -L . | Select-String -Pattern OPENSIM_QUALIFIED_VERSION $version = $env:match.split('=')[1] echo $version @@ -350,8 +313,8 @@ jobs: run: | chdir $env:GITHUB_WORKSPACE\\build chdir $env:GITHUB_WORKSPACE - Copy-Item -Path "~/opensim-core-install" -Destination "opensim-core-${{ steps.configure.outputs.version }}" -Recurse - 7z a "opensim-core-${{ steps.configure.outputs.version }}.zip" "opensim-core-${{ steps.configure.outputs.version }}" + Copy-Item -Path "~/opensim-core-install" -Destination "opensim-core-${{ github.event.pull_request.base.ref }}" -Recurse + 7z a "opensim-core-${{ github.event.pull_request.base.ref }}.zip" "opensim-core-${{ github.event.pull_request.base.ref }}" - name: Test Python bindings run: | @@ -364,26 +327,106 @@ jobs: - name: Upload opensim-core uses: actions/upload-artifact@v4 with: - name: opensim-core-${{ steps.configure.outputs.version }}-win - path: opensim-core-${{ steps.configure.outputs.version }}.zip + name: opensim-core-${{ github.event.pull_request.base.ref }}-win2022 + path: opensim-core-${{ github.event.pull_request.base.ref }}.zip - mac_target: - name: Mac [target] + performance_analysis_win: + runs-on: ubuntu-latest + name: Performance Analysis [Windows 2022] - runs-on: macos-14 + env: + GH_TOKEN: ${{ github.token }} - if: ${{ contains(github.event.pull_request.title, '[perf-mac]') || contains(github.event.pull_request.body, '[perf-mac]') }} + needs: + - windows2022 + - windows2022_perf + + if: ${{ contains(github.event.pull_request.title, '[perf-win]') || contains(github.event.pull_request.body, '[perf-win]') }} steps: - - uses: actions/checkout@v4 + - name: Trigger opensim-perf workflow + uses: Codex-/return-dispatch@v1.12.0 + id: return_dispatch with: - ref: ${{ github.event.pull_request.base.ref }} + token: ${{ secrets.PERF_DISPATCH_PAT }} + repo: opensim-perf + owner: opensim-org + ref: main + workflow: performance_analysis_win.yml + workflow_inputs: '{"commit_sha": "${{ github.event.pull_request.head.sha }}", "target_artifact_name": "opensim-core-${{ github.event.pull_request.base.ref }}-win2022", "source_artifact_name": "opensim-core-${{ needs.windows2022.outputs.version }}-win2022", "target_artifact_zip": "opensim-core-${{ github.event.pull_request.base.ref }}.zip", "source_artifact_zip": "opensim-core-${{ needs.windows2022.outputs.version }}.zip"}' + + - name: Await opensim-perf workflow + uses: Codex-/await-remote-run@v1.11.0 + with: + token: ${{ secrets.PERF_DISPATCH_PAT }} + repo: opensim-perf + owner: opensim-org + run_id: ${{ steps.return_dispatch.outputs.run_id }} + run_timeout_seconds: 10000 + + - name: Download performance analysis results + id: download-artifact + uses: dawidd6/action-download-artifact@v3.0.0 + with: + github_token: ${{ secrets.PERF_DISPATCH_PAT }} + run_id: ${{ steps.return_dispatch.outputs.run_id }} + workflow: performance_analysis_win.yml + name: performance-results + path: results + repo: opensim-org/opensim-perf + + - name: Post results to pull request description + run: | + PR_NUMBER=$(jq --raw-output .pull_request.number "$GITHUB_EVENT_PATH") + EXISTING_COMMENT_CONTENT=$(gh api /repos/opensim-org/opensim-core/pulls/${PR_NUMBER} | jq -r '.body') + CUSTOM_HEADER="### Performance analysis" + + REVIEWABLE_TAG="" + REVIEWABLE_CONTENT="" + if [[ $EXISTING_COMMENT_CONTENT == *"$REVIEWABLE_TAG"* ]]; then + REVIEWABLE_CONTENT=$(echo "$EXISTING_COMMENT_CONTENT" | awk "/$REVIEWABLE_TAG/,0") + fi + + if [[ $EXISTING_COMMENT_CONTENT == *"$CUSTOM_HEADER"* ]]; then + CONTENT_TO_REPLACE=$(echo "$EXISTING_COMMENT_CONTENT" | awk "/$CUSTOM_HEADER/,0") + else + CONTENT_TO_REPLACE=${REVIEWABLE_CONTENT} + fi + + NEW_CONTENT="${CUSTOM_HEADER} + + Platform: Windows, self-hosted runner + + $(cat results/performance_results.md) + ${REVIEWABLE_CONTENT} + " + NEW_COMMENT_BODY="${EXISTING_COMMENT_CONTENT/"${CONTENT_TO_REPLACE}"/${NEW_CONTENT}}" + + # Update the existing description + gh api \ + --method PATCH \ + -H "Content-Type: application/json" \ + -H "Accept: application/vnd.github.v3+json" \ + -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ + repos/opensim-org/opensim-core/pulls/${PR_NUMBER} \ + -f "body=${NEW_COMMENT_BODY}" + + mac_x86_64: + runs-on: macos-14-large + name: Mac x86_64 + + outputs: + version: ${{ steps.configure.outputs.version }} + + steps: + - uses: actions/checkout@v4 + - name: Install Python packages uses: actions/setup-python@v4 with: python-version: '3.10' - + - name: Install Homebrew packages # Save the gfortran version to a file so we can use it in the cache key. run: | @@ -478,9 +521,9 @@ jobs: make doxygen make install cd $GITHUB_WORKSPACE - mv $GITHUB_WORKSPACE/../opensim-core-install opensim-core-${{ github.event.pull_request.base.ref }} - zip --symlinks --recurse-paths --quiet opensim-core-${{ github.event.pull_request.base.ref }}.zip opensim-core-${{ github.event.pull_request.base.ref }} - mv opensim-core-${{ github.event.pull_request.base.ref }} $GITHUB_WORKSPACE/../opensim-core-install + mv $GITHUB_WORKSPACE/../opensim-core-install opensim-core-${{ steps.configure.outputs.version }} + zip --symlinks --recurse-paths --quiet opensim-core-${{ steps.configure.outputs.version }}.zip opensim-core-${{ steps.configure.outputs.version }} + mv opensim-core-${{ steps.configure.outputs.version }} $GITHUB_WORKSPACE/../opensim-core-install - name: Test Python bindings run: | @@ -493,14 +536,14 @@ jobs: with: # The upload-artifact zipping does not preserve symlinks or executable # bits. So we zip ourselves, even though this causes a double-zip. - name: opensim-core-${{ github.event.pull_request.base.ref }}-mac - path: opensim-core-${{ github.event.pull_request.base.ref }}.zip + name: opensim-core-${{ steps.configure.outputs.version }}-mac_x86_64 + path: opensim-core-${{ steps.configure.outputs.version }}.zip - mac_source: + mac_arm64: runs-on: macos-14 - name: ${{ (contains(github.event.pull_request.title, '[perf-mac]') || contains(github.event.pull_request.body, '[perf-mac]')) && 'Mac [source]' || 'Mac' }} + name: 'Mac Arm64' outputs: version: ${{ steps.configure.outputs.version }} @@ -622,107 +665,150 @@ jobs: with: # The upload-artifact zipping does not preserve symlinks or executable # bits. So we zip ourselves, even though this causes a double-zip. - name: opensim-core-${{ steps.configure.outputs.version }}-mac + name: opensim-core-${{ steps.configure.outputs.version }}-mac_arm64 path: opensim-core-${{ steps.configure.outputs.version }}.zip - performance_analysis_win: - name: Performance Analysis (Windows) - - env: - GH_TOKEN: ${{ github.token }} - - needs: - - windows2022_target - - windows2022_source - - runs-on: ubuntu-latest + mac_arm64_perf: + runs-on: macos-14 + name: Mac Arm64 [main] - if: ${{ contains(github.event.pull_request.title, '[perf-win]') || contains(github.event.pull_request.body, '[perf-win]') }} + if: ${{ contains(github.event.pull_request.title, '[perf-mac]') || contains(github.event.pull_request.body, '[perf-mac]') }} steps: - - name: Trigger opensim-perf workflow - uses: Codex-/return-dispatch@v1.12.0 - id: return_dispatch + - uses: actions/checkout@v4 with: - token: ${{ secrets.PERF_DISPATCH_PAT }} - repo: opensim-perf - owner: opensim-org - ref: main - workflow: performance_analysis_win.yml - workflow_inputs: '{"commit_sha": "${{ github.event.pull_request.head.sha }}", "target_artifact_name": "opensim-core-${{ github.event.pull_request.base.ref }}-win", "source_artifact_name": "opensim-core-${{ needs.windows2022_source.outputs.version }}-win", "target_artifact_zip": "opensim-core-${{ github.event.pull_request.base.ref }}.zip", "source_artifact_zip": "opensim-core-${{ needs.windows2022_source.outputs.version }}.zip"}' + ref: ${{ github.event.pull_request.base.ref }} - - name: Await opensim-perf workflow - uses: Codex-/await-remote-run@v1.11.0 + - name: Install Python packages + uses: actions/setup-python@v4 with: - token: ${{ secrets.PERF_DISPATCH_PAT }} - repo: opensim-perf - owner: opensim-org - run_id: ${{ steps.return_dispatch.outputs.run_id }} - run_timeout_seconds: 10000 + python-version: '3.10' + + - name: Install Homebrew packages + # Save the gfortran version to a file so we can use it in the cache key. + run: | + brew install cmake pkgconfig autoconf libtool automake wget pcre doxygen llvm + brew reinstall gcc + pip3 install numpy==1.25 + gfortran -v + mkdir gfortran_version + gfortran -v &> gfortran_version/gfortran_version.txt - - name: Download performance analysis results - id: download-artifact - uses: dawidd6/action-download-artifact@v3.0.0 + - name: Cache SWIG + id: cache-swig + uses: actions/cache@v3 with: - github_token: ${{ secrets.PERF_DISPATCH_PAT }} - run_id: ${{ steps.return_dispatch.outputs.run_id }} - workflow: performance_analysis_win.yml - name: performance-results - path: results - repo: opensim-org/opensim-perf + path: ~/swig + key: ${{ runner.os }}-swig - - name: Post results to pull request description + - name: Install SWIG + # if: steps.cache-swig.outputs.cache-hit != 'true' run: | - PR_NUMBER=$(jq --raw-output .pull_request.number "$GITHUB_EVENT_PATH") - EXISTING_COMMENT_CONTENT=$(gh api /repos/opensim-org/opensim-core/pulls/${PR_NUMBER} | jq -r '.body') - CUSTOM_HEADER="### Performance analysis" + mkdir ~/swig-source && cd ~/swig-source + wget https://github.com/swig/swig/archive/refs/tags/v4.1.1.tar.gz + tar xzf v4.1.1.tar.gz && cd swig-4.1.1 + sh autogen.sh && ./configure --prefix=$HOME/swig --disable-ccache + make && make -j4 install - REVIEWABLE_TAG="" - REVIEWABLE_CONTENT="" - if [[ $EXISTING_COMMENT_CONTENT == *"$REVIEWABLE_TAG"* ]]; then - REVIEWABLE_CONTENT=$(echo "$EXISTING_COMMENT_CONTENT" | awk "/$REVIEWABLE_TAG/,0") - fi + - name: Cache dependencies + id: cache-dependencies + uses: actions/cache@v3 + with: + path: ~/opensim_dependencies_install + # If Homebrew updates the gcc package, then our cache of IPOPT is invalid. + # Specifically, the pkgcfg_lib_IPOPT_gfortran CMake variable becomes + # undefined. + key: ${{ runner.os }}-dependencies-${{ hashFiles('dependencies/*') }}-${{ hashFiles('gfortran_version/*') }} - if [[ $EXISTING_COMMENT_CONTENT == *"$CUSTOM_HEADER"* ]]; then - CONTENT_TO_REPLACE=$(echo "$EXISTING_COMMENT_CONTENT" | awk "/$CUSTOM_HEADER/,0") - else - CONTENT_TO_REPLACE=${REVIEWABLE_CONTENT} - fi + - name: Build dependencies + if: steps.cache-dependencies.outputs.cache-hit != 'true' + run: | + mkdir $GITHUB_WORKSPACE/../build_deps + cd $GITHUB_WORKSPACE/../build_deps + DEP_CMAKE_ARGS=($GITHUB_WORKSPACE/dependencies -LAH) + DEP_CMAKE_ARGS+=(-DCMAKE_INSTALL_PREFIX=~/opensim_dependencies_install) + DEP_CMAKE_ARGS+=(-DCMAKE_BUILD_TYPE=Release) + DEP_CMAKE_ARGS+=(-DSUPERBUILD_ezc3d=ON) + DEP_CMAKE_ARGS+=(-DOPENSIM_WITH_TROPTER=ON) + DEP_CMAKE_ARGS+=(-DOPENSIM_WITH_CASADI=ON) + DEP_CMAKE_ARGS+=(-DOPENSIM_DISABLE_LOG_FILE=ON) + DEP_CMAKE_ARGS+=(-DCMAKE_OSX_DEPLOYMENT_TARGET=11) + printf '%s\n' "${DEP_CMAKE_ARGS[@]}" + cmake "${DEP_CMAKE_ARGS[@]}" + make --jobs 4 - NEW_CONTENT="${CUSTOM_HEADER} + - name: Configure opensim-core + id: configure + run: | + mkdir $GITHUB_WORKSPACE/../build + cd $GITHUB_WORKSPACE/../build + OSIM_CMAKE_ARGS=($GITHUB_WORKSPACE -LAH) + OSIM_CMAKE_ARGS+=(-DCMAKE_INSTALL_PREFIX=$GITHUB_WORKSPACE/../opensim-core-install) + OSIM_CMAKE_ARGS+=(-DCMAKE_BUILD_TYPE=Release) + OSIM_CMAKE_ARGS+=(-DOPENSIM_DEPENDENCIES_DIR=~/opensim_dependencies_install) + OSIM_CMAKE_ARGS+=(-DCMAKE_OSX_DEPLOYMENT_TARGET=11) + OSIM_CMAKE_ARGS+=(-DOPENSIM_C3D_PARSER=ezc3d) + OSIM_CMAKE_ARGS+=(-DBUILD_PYTHON_WRAPPING=on -DBUILD_JAVA_WRAPPING=on) + OSIM_CMAKE_ARGS+=(-DSWIG_EXECUTABLE=$HOME/swig/bin/swig) + OSIM_CMAKE_ARGS+=(-DOPENSIM_INSTALL_UNIX_FHS=OFF) + OSIM_CMAKE_ARGS+=(-DOPENSIM_DOXYGEN_USE_MATHJAX=off) + # TODO: Update to simbody.github.io/latest + OSIM_CMAKE_ARGS+=(-DOPENSIM_SIMBODY_DOXYGEN_LOCATION="https://simbody.github.io/simtk.org/api_docs/simbody/latest/") + OSIM_CMAKE_ARGS+=(-DCMAKE_CXX_FLAGS="-Werror, -Wdeprecated-copy") + printf '%s\n' "${OSIM_CMAKE_ARGS[@]}" + cmake "${OSIM_CMAKE_ARGS[@]}" + VERSION=`cmake -L . | grep OPENSIM_QUALIFIED_VERSION | cut -d "=" -f2` + echo $VERSION + echo "VERSION=$VERSION" >> $GITHUB_ENV + echo "version=$VERSION" >> $GITHUB_OUTPUT - Platform: Windows, self-hosted runner + - name: Build opensim-core + run: | + cd $GITHUB_WORKSPACE/../build + make --jobs 4 - $(cat results/performance_results.md) + - name: Test opensim-core + run: | + cd $GITHUB_WORKSPACE/../build + ctest --parallel 4 --output-on-failure - ${REVIEWABLE_CONTENT} - " - NEW_COMMENT_BODY="${EXISTING_COMMENT_CONTENT/"${CONTENT_TO_REPLACE}"/${NEW_CONTENT}}" + - name: Install opensim-core + run: | + cd $GITHUB_WORKSPACE/../build + make doxygen + make install + cd $GITHUB_WORKSPACE + mv $GITHUB_WORKSPACE/../opensim-core-install opensim-core-${{ github.event.pull_request.base.ref }} + zip --symlinks --recurse-paths --quiet opensim-core-${{ github.event.pull_request.base.ref }}.zip opensim-core-${{ github.event.pull_request.base.ref }} + mv opensim-core-${{ github.event.pull_request.base.ref }} $GITHUB_WORKSPACE/../opensim-core-install - # Update the existing description - gh api \ - --method PATCH \ - -H "Content-Type: application/json" \ - -H "Accept: application/vnd.github.v3+json" \ - -H "Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" \ - repos/opensim-org/opensim-core/pulls/${PR_NUMBER} \ - -f "body=${NEW_COMMENT_BODY}" + - name: Test Python bindings + run: | + cd $GITHUB_WORKSPACE/../opensim-core-install/sdk/Python + # Run the python tests, verbosely. + python3 -m unittest discover --start-directory opensim/tests --verbose - performance_analysis_mac: + - name: Upload opensim-core + uses: actions/upload-artifact@v4 + with: + # The upload-artifact zipping does not preserve symlinks or executable + # bits. So we zip ourselves, even though this causes a double-zip. + name: opensim-core-${{ github.event.pull_request.base.ref }}-mac_arm64 + path: opensim-core-${{ github.event.pull_request.base.ref }}.zip - name: Performance Analysis (Mac) + performance_analysis_mac: + runs-on: ubuntu-latest + name: Performance Analysis [Mac Arm64] env: GH_TOKEN: ${{ github.token }} - needs: - - mac_target - - mac_source - - runs-on: ubuntu-latest - if: ${{ contains(github.event.pull_request.title, '[perf-mac]') || contains(github.event.pull_request.body, '[perf-mac]') }} + needs: + - mac_arm64 + - mac_arm64_perf + steps: - name: Trigger opensim-perf workflow uses: Codex-/return-dispatch@v1.12.0 @@ -733,7 +819,7 @@ jobs: owner: opensim-org ref: main workflow: performance_analysis_mac.yml - workflow_inputs: '{"commit_sha": "${{ github.event.pull_request.head.sha }}", "target_artifact_name": "opensim-core-${{ github.event.pull_request.base.ref }}-mac", "source_artifact_name": "opensim-core-${{ needs.mac_source.outputs.version }}-mac", "target_artifact_zip": "opensim-core-${{ github.event.pull_request.base.ref }}.zip", "source_artifact_zip": "opensim-core-${{ needs.mac_source.outputs.version }}.zip"}' + workflow_inputs: '{"commit_sha": "${{ github.event.pull_request.head.sha }}", "target_artifact_name": "opensim-core-${{ github.event.pull_request.base.ref }}-mac", "source_artifact_name": "opensim-core-${{ needs.mac_arm64.outputs.version }}-mac", "target_artifact_zip": "opensim-core-${{ github.event.pull_request.base.ref }}.zip", "source_artifact_zip": "opensim-core-${{ needs.mac_arm64.outputs.version }}.zip"}' - name: Await opensim-perf workflow uses: Codex-/await-remote-run@v1.11.0 @@ -793,8 +879,7 @@ jobs: -f "body=${NEW_COMMENT_BODY}" ubuntu20: - name: Ubuntu2004 - + name: Ubuntu 20.04 runs-on: ubuntu-20.04 steps: @@ -888,7 +973,7 @@ jobs: make --jobs 4 install cd $GITHUB_WORKSPACE mv $GITHUB_WORKSPACE/../opensim-core-install opensim-core-${{ steps.configure.outputs.version }} - zip --symlinks --recurse-paths --quiet opensim-core-${{ steps.configure.outputs.version }}-ub20.zip opensim-core-${{ steps.configure.outputs.version }} + zip --symlinks --recurse-paths --quiet opensim-core-${{ steps.configure.outputs.version }}-ubuntu20.zip opensim-core-${{ steps.configure.outputs.version }} mv opensim-core-${{ steps.configure.outputs.version }} $GITHUB_WORKSPACE/../opensim-core-install # - name: Test Python bindings @@ -903,13 +988,12 @@ jobs: with: # The upload-artifact zipping does not preserve symlinks or executable # bits. So we zip ourselves, even though this causes a double-zip. - name: opensim-core-${{ steps.configure.outputs.version }}-ub20-linux - path: opensim-core-${{ steps.configure.outputs.version }}-ub20.zip + name: opensim-core-${{ steps.configure.outputs.version }}-ubuntu20-linux + path: opensim-core-${{ steps.configure.outputs.version }}-ubuntu20.zip - ubuntu20-nomoco: - name: Ubuntu2004-nomoco - - runs-on: ubuntu-20.04 + ubuntu22: + name: Ubuntu 22.04 + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 @@ -935,6 +1019,7 @@ jobs: tar xzf v4.1.1.tar.gz && cd swig-4.1.1 sh autogen.sh && ./configure --prefix=$HOME/swig --disable-ccache make && make -j4 install + - name: Cache dependencies id: cache-dependencies uses: actions/cache@v3 @@ -943,7 +1028,7 @@ jobs: key: ${{ runner.os }}-dependencies-${{ hashFiles('dependencies/*') }} - name: Build dependencies - if: steps.cache-dependencies.outputs.cache-hit != 'true' + # if: steps.cache-dependencies.outputs.cache-hit != 'true' run: | mkdir $GITHUB_WORKSPACE/../build_deps cd $GITHUB_WORKSPACE/../build_deps @@ -951,8 +1036,8 @@ jobs: DEP_CMAKE_ARGS+=(-DCMAKE_INSTALL_PREFIX=~/opensim_dependencies_install) DEP_CMAKE_ARGS+=(-DCMAKE_BUILD_TYPE=Release) DEP_CMAKE_ARGS+=(-DSUPERBUILD_ezc3d=ON) - DEP_CMAKE_ARGS+=(-DOPENSIM_WITH_TROPTER=OFF) - DEP_CMAKE_ARGS+=(-DOPENSIM_WITH_CASADI=OFF) + DEP_CMAKE_ARGS+=(-DOPENSIM_WITH_TROPTER=ON) + DEP_CMAKE_ARGS+=(-DOPENSIM_WITH_CASADI=ON) printf '%s\n' "${DEP_CMAKE_ARGS[@]}" cmake "${DEP_CMAKE_ARGS[@]}" make --jobs 4 @@ -972,8 +1057,6 @@ jobs: OSIM_CMAKE_ARGS+=(-DSWIG_EXECUTABLE=~/swig/bin/swig) OSIM_CMAKE_ARGS+=(-DOPENSIM_INSTALL_UNIX_FHS=OFF) OSIM_CMAKE_ARGS+=(-DOPENSIM_DOXYGEN_USE_MATHJAX=off) - OSIM_CMAKE_ARGS+=(-DOPENSIM_WITH_TROPTER=off) - OSIM_CMAKE_ARGS+=(-DOPENSIM_WITH_CASADI=off) # TODO: Update to simbody.github.io/latest OSIM_CMAKE_ARGS+=(-DOPENSIM_SIMBODY_DOXYGEN_LOCATION="https://simbody.github.io/simtk.org/api_docs/simbody/latest/") OSIM_CMAKE_ARGS+=(-DCMAKE_CXX_FLAGS="-Werror") @@ -994,7 +1077,7 @@ jobs: cd $GITHUB_WORKSPACE/../build # TODO: Temporary for python to find Simbody libraries. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/opensim_dependencies_install/simbody/lib - # ctest --parallel 4 --output-on-failure + ctest --parallel 4 --output-on-failure - name: Install opensim-core run: | @@ -1003,61 +1086,60 @@ jobs: make --jobs 4 install cd $GITHUB_WORKSPACE mv $GITHUB_WORKSPACE/../opensim-core-install opensim-core-${{ steps.configure.outputs.version }} - zip --symlinks --recurse-paths --quiet opensim-core-${{ steps.configure.outputs.version }}-ub20.zip opensim-core-${{ steps.configure.outputs.version }} + zip --symlinks --recurse-paths --quiet opensim-core-${{ steps.configure.outputs.version }}-ubuntu22.zip opensim-core-${{ steps.configure.outputs.version }} mv opensim-core-${{ steps.configure.outputs.version }} $GITHUB_WORKSPACE/../opensim-core-install - # - name: Test Python bindings - # run: | - # echo "TODO: Skipping Python tests." - # # cd $GITHUB_WORKSPACE/../opensim-core-install/sdk/Python - # # Run the python tests, verbosely. - # # python3 -m unittest discover --start-directory opensim/tests --verbose + - name: Test Python bindings + run: | + cd $GITHUB_WORKSPACE/../opensim-core-install/sdk/Python + Run the python tests, verbosely. + python3 -m unittest discover --start-directory opensim/tests --verbose - name: Upload opensim-core uses: actions/upload-artifact@v4 with: # The upload-artifact zipping does not preserve symlinks or executable # bits. So we zip ourselves, even though this causes a double-zip. - name: opensim-core-${{ steps.configure.outputs.version }}-ub20-nomoco-linux - path: opensim-core-${{ steps.configure.outputs.version }}-ub20.zip - - windows2022-gui: - name: Windows2022-gui + name: opensim-core-${{ steps.configure.outputs.version }}-ubuntu22-linux + path: opensim-core-${{ steps.configure.outputs.version }}-ubuntu22.zip + + build_gui: + name: Build GUI [win2022] - runs-on: windows-2022 + runs-on: windows-2022 - env: - GH_TOKEN: ${{ github.token }} + env: + GH_TOKEN: ${{ github.token }} - if: ${{ contains(github.event.pull_request.title, '[build-gui]') || contains(github.event.pull_request.body, '[build-gui]') }} + if: ${{ contains(github.event.pull_request.title, '[build-gui]') || contains(github.event.pull_request.body, '[build-gui]') }} - steps: - - name: Dispatch opensim-gui workflow and get the run ID - uses: codex-/return-dispatch@v1 - id: return_dispatch - with: - token: ${{ secrets.ACTION_SECRET }} - ref: refs/heads/main - repo: opensim-gui - owner: opensim-org - workflow: build-on-core-pr.yml - - - name: Use the output run ID - run: echo ${{steps.return_dispatch.outputs.run_id}} - - - name: Await opensim-gui workflow - uses: Codex-/await-remote-run@v1.11.0 - with: - token: ${{ secrets.ACTION_SECRET }} - repo: opensim-gui - owner: opensim-org - run_id: ${{ steps.return_dispatch.outputs.run_id }} - run_timeout_seconds: 10000 + steps: + - name: Dispatch opensim-gui workflow and get the run ID + uses: codex-/return-dispatch@v1 + id: return_dispatch + with: + token: ${{ secrets.ACTION_SECRET }} + ref: refs/heads/main + repo: opensim-gui + owner: opensim-org + workflow: build-on-core-pr.yml + - name: Use the output run ID + run: echo ${{steps.return_dispatch.outputs.run_id}} + + - name: Await opensim-gui workflow + uses: Codex-/await-remote-run@v1.11.0 + with: + token: ${{ secrets.ACTION_SECRET }} + repo: opensim-gui + owner: opensim-org + run_id: ${{ steps.return_dispatch.outputs.run_id }} + run_timeout_seconds: 10000 + style: name: Style - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 From 006181e661a6cec382e7620825d5ae61c8e48d0b Mon Sep 17 00:00:00 2001 From: nickbianco Date: Sat, 19 Oct 2024 14:06:04 -0700 Subject: [PATCH 02/15] Use `macos-13` runner for x86_64 builds --- .github/workflows/continuous_integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index 1c3a7992b3..09a2356040 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -413,7 +413,7 @@ jobs: -f "body=${NEW_COMMENT_BODY}" mac_x86_64: - runs-on: macos-14-large + runs-on: macos-13 name: Mac x86_64 outputs: From 2fd95564114ccec7428d7e532c45eb957b49df70 Mon Sep 17 00:00:00 2001 From: nickbianco Date: Sun, 20 Oct 2024 12:55:00 -0700 Subject: [PATCH 03/15] Re-enable Python tests on Ubuntu 20 --- .github/workflows/continuous_integration.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index 09a2356040..83beb1446d 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -976,12 +976,11 @@ jobs: zip --symlinks --recurse-paths --quiet opensim-core-${{ steps.configure.outputs.version }}-ubuntu20.zip opensim-core-${{ steps.configure.outputs.version }} mv opensim-core-${{ steps.configure.outputs.version }} $GITHUB_WORKSPACE/../opensim-core-install - # - name: Test Python bindings - # run: | - # echo "TODO: Skipping Python tests." - # # cd $GITHUB_WORKSPACE/../opensim-core-install/sdk/Python - # # Run the python tests, verbosely. - # # python3 -m unittest discover --start-directory opensim/tests --verbose + - name: Test Python bindings + run: | + cd $GITHUB_WORKSPACE/../opensim-core-install/sdk/Python + Run the python tests, verbosely. + python3 -m unittest discover --start-directory opensim/tests --verbose - name: Upload opensim-core uses: actions/upload-artifact@v4 From df3861060ce52e883e72e6ff57298f1fe8f6a699 Mon Sep 17 00:00:00 2001 From: nickbianco Date: Sun, 20 Oct 2024 13:24:24 -0700 Subject: [PATCH 04/15] Try to avoid Mat44 compiler error on Ubuntu 22 --- OpenSim/Simulation/Wrap/WrapEllipsoid.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenSim/Simulation/Wrap/WrapEllipsoid.cpp b/OpenSim/Simulation/Wrap/WrapEllipsoid.cpp index 4dcaf4a697..9a5d98e34d 100644 --- a/OpenSim/Simulation/Wrap/WrapEllipsoid.cpp +++ b/OpenSim/Simulation/Wrap/WrapEllipsoid.cpp @@ -696,7 +696,7 @@ int WrapEllipsoid::calcTangentPoint(double p1e, SimTK::Vec3& r1, SimTK::Vec3& p1 } for (i = 0; i < 4; i++) - diag[i] = dedth2[i][i]; + diag[i] = dedth2(i, i); nit2 = 0; From 8aac050a2abea8c7828301dc75075369e0180ee0 Mon Sep 17 00:00:00 2001 From: nickbianco Date: Mon, 21 Oct 2024 14:02:28 -0700 Subject: [PATCH 05/15] Fix typo --- .github/workflows/continuous_integration.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index 83beb1446d..020cde298e 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -979,7 +979,7 @@ jobs: - name: Test Python bindings run: | cd $GITHUB_WORKSPACE/../opensim-core-install/sdk/Python - Run the python tests, verbosely. + # Run the python tests, verbosely. python3 -m unittest discover --start-directory opensim/tests --verbose - name: Upload opensim-core @@ -1091,7 +1091,7 @@ jobs: - name: Test Python bindings run: | cd $GITHUB_WORKSPACE/../opensim-core-install/sdk/Python - Run the python tests, verbosely. + # Run the python tests, verbosely. python3 -m unittest discover --start-directory opensim/tests --verbose - name: Upload opensim-core From 8aeea5dd9726c0237a2170548c79f849a3035e27 Mon Sep 17 00:00:00 2001 From: nickbianco Date: Mon, 21 Oct 2024 16:00:45 -0700 Subject: [PATCH 06/15] Try Python 3.11 on Ubuntu 22 --- .github/workflows/continuous_integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index 020cde298e..e59f9e0e44 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -1000,7 +1000,7 @@ jobs: - name: Install Python packages uses: actions/setup-python@v4 with: - python-version: '3.10' + python-version: '3.11' - name: Install Numpy run: | From 91cf2b585f0a703726aa3953fc47c7160e729d26 Mon Sep 17 00:00:00 2001 From: Ayman Habib Date: Tue, 22 Oct 2024 13:15:54 -0700 Subject: [PATCH 07/15] Update continuous_integration.yml Add debugging line --- .github/workflows/continuous_integration.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index e59f9e0e44..1c6fbc0380 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -964,6 +964,7 @@ jobs: cd $GITHUB_WORKSPACE/../build # TODO: Temporary for python to find Simbody libraries. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/opensim_dependencies_install/simbody/lib + echo $LD_LIBRARY_PATH ctest --parallel 4 --output-on-failure - name: Install opensim-core From ea77475f9cba06a3afcedc3084c1b22bb4fcdd5d Mon Sep 17 00:00:00 2001 From: nickbianco Date: Tue, 22 Oct 2024 14:50:21 -0700 Subject: [PATCH 08/15] Disable python tests on Ubuntu --- .github/workflows/continuous_integration.yml | 23 ++++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index 1c6fbc0380..a1ebbeb15b 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -959,13 +959,12 @@ jobs: cd $GITHUB_WORKSPACE/../build make --jobs 4 - - name: Test opensim-core - run: | - cd $GITHUB_WORKSPACE/../build - # TODO: Temporary for python to find Simbody libraries. - export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/opensim_dependencies_install/simbody/lib - echo $LD_LIBRARY_PATH - ctest --parallel 4 --output-on-failure + # - name: Test opensim-core + # run: | + # cd $GITHUB_WORKSPACE/../build + # # TODO: Temporary for python to find Simbody libraries. + # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/opensim_dependencies_install/simbody/lib + # ctest --parallel 4 --output-on-failure - name: Install opensim-core run: | @@ -1089,11 +1088,11 @@ jobs: zip --symlinks --recurse-paths --quiet opensim-core-${{ steps.configure.outputs.version }}-ubuntu22.zip opensim-core-${{ steps.configure.outputs.version }} mv opensim-core-${{ steps.configure.outputs.version }} $GITHUB_WORKSPACE/../opensim-core-install - - name: Test Python bindings - run: | - cd $GITHUB_WORKSPACE/../opensim-core-install/sdk/Python - # Run the python tests, verbosely. - python3 -m unittest discover --start-directory opensim/tests --verbose + # - name: Test Python bindings + # run: | + # cd $GITHUB_WORKSPACE/../opensim-core-install/sdk/Python + # # Run the python tests, verbosely. + # python3 -m unittest discover --start-directory opensim/tests --verbose - name: Upload opensim-core uses: actions/upload-artifact@v4 From 6ccb4aacb43fdc474c665713697e254f1c46fe84 Mon Sep 17 00:00:00 2001 From: nickbianco Date: Wed, 23 Oct 2024 09:49:32 -0700 Subject: [PATCH 09/15] Comment out Python tests on Ubuntu 20 --- .github/workflows/continuous_integration.yml | 22 ++++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index a1ebbeb15b..d65ce610d0 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -959,12 +959,12 @@ jobs: cd $GITHUB_WORKSPACE/../build make --jobs 4 - # - name: Test opensim-core - # run: | - # cd $GITHUB_WORKSPACE/../build - # # TODO: Temporary for python to find Simbody libraries. - # export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/opensim_dependencies_install/simbody/lib - # ctest --parallel 4 --output-on-failure + - name: Test opensim-core + run: | + cd $GITHUB_WORKSPACE/../build + # TODO: Temporary for python to find Simbody libraries. + export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/opensim_dependencies_install/simbody/lib + ctest --parallel 4 --output-on-failure - name: Install opensim-core run: | @@ -976,11 +976,11 @@ jobs: zip --symlinks --recurse-paths --quiet opensim-core-${{ steps.configure.outputs.version }}-ubuntu20.zip opensim-core-${{ steps.configure.outputs.version }} mv opensim-core-${{ steps.configure.outputs.version }} $GITHUB_WORKSPACE/../opensim-core-install - - name: Test Python bindings - run: | - cd $GITHUB_WORKSPACE/../opensim-core-install/sdk/Python - # Run the python tests, verbosely. - python3 -m unittest discover --start-directory opensim/tests --verbose + # - name: Test Python bindings + # run: | + # cd $GITHUB_WORKSPACE/../opensim-core-install/sdk/Python + # # Run the python tests, verbosely. + # python3 -m unittest discover --start-directory opensim/tests --verbose - name: Upload opensim-core uses: actions/upload-artifact@v4 From fdbc503dfa6e76d30d12276861f6f995bcedb172 Mon Sep 17 00:00:00 2001 From: nickbianco Date: Wed, 23 Oct 2024 10:49:43 -0700 Subject: [PATCH 10/15] Set Ubuntu22 back to Python 3.10 --- .github/workflows/continuous_integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index d65ce610d0..7b70801e24 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -1000,7 +1000,7 @@ jobs: - name: Install Python packages uses: actions/setup-python@v4 with: - python-version: '3.11' + python-version: '3.10' - name: Install Numpy run: | From f0e47468bd07b84a7e81c8903e6d1a05081a45a1 Mon Sep 17 00:00:00 2001 From: nickbianco Date: Wed, 23 Oct 2024 13:26:22 -0700 Subject: [PATCH 11/15] Dummy commit to trigger Mac perf workflow --- .github/workflows/continuous_integration.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index 7b70801e24..523c99c653 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -540,9 +540,7 @@ jobs: path: opensim-core-${{ steps.configure.outputs.version }}.zip mac_arm64: - runs-on: macos-14 - name: 'Mac Arm64' outputs: @@ -1104,7 +1102,6 @@ jobs: build_gui: name: Build GUI [win2022] - runs-on: windows-2022 env: From 514f39a44af419786f5411204f05b09a91692083 Mon Sep 17 00:00:00 2001 From: nickbianco Date: Wed, 23 Oct 2024 14:24:17 -0700 Subject: [PATCH 12/15] Use correct Mac Arm64 artifact names for perf analysis --- .github/workflows/continuous_integration.yml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index 523c99c653..60c95ee43b 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -536,12 +536,12 @@ jobs: with: # The upload-artifact zipping does not preserve symlinks or executable # bits. So we zip ourselves, even though this causes a double-zip. - name: opensim-core-${{ steps.configure.outputs.version }}-mac_x86_64 + name: opensim-core-${{ steps.configure.outputs.version }}-mac-x86_64 path: opensim-core-${{ steps.configure.outputs.version }}.zip mac_arm64: runs-on: macos-14 - name: 'Mac Arm64' + name: Mac Arm64 outputs: version: ${{ steps.configure.outputs.version }} @@ -663,7 +663,7 @@ jobs: with: # The upload-artifact zipping does not preserve symlinks or executable # bits. So we zip ourselves, even though this causes a double-zip. - name: opensim-core-${{ steps.configure.outputs.version }}-mac_arm64 + name: opensim-core-${{ steps.configure.outputs.version }}-mac-arm64 path: opensim-core-${{ steps.configure.outputs.version }}.zip mac_arm64_perf: @@ -791,7 +791,7 @@ jobs: with: # The upload-artifact zipping does not preserve symlinks or executable # bits. So we zip ourselves, even though this causes a double-zip. - name: opensim-core-${{ github.event.pull_request.base.ref }}-mac_arm64 + name: opensim-core-${{ github.event.pull_request.base.ref }}-mac-arm64 path: opensim-core-${{ github.event.pull_request.base.ref }}.zip performance_analysis_mac: @@ -817,7 +817,7 @@ jobs: owner: opensim-org ref: main workflow: performance_analysis_mac.yml - workflow_inputs: '{"commit_sha": "${{ github.event.pull_request.head.sha }}", "target_artifact_name": "opensim-core-${{ github.event.pull_request.base.ref }}-mac", "source_artifact_name": "opensim-core-${{ needs.mac_arm64.outputs.version }}-mac", "target_artifact_zip": "opensim-core-${{ github.event.pull_request.base.ref }}.zip", "source_artifact_zip": "opensim-core-${{ needs.mac_arm64.outputs.version }}.zip"}' + workflow_inputs: '{"commit_sha": "${{ github.event.pull_request.head.sha }}", "target_artifact_name": "opensim-core-${{ github.event.pull_request.base.ref }}-mac-arm64", "source_artifact_name": "opensim-core-${{ needs.mac_arm64.outputs.version }}-mac-arm64", "target_artifact_zip": "opensim-core-${{ github.event.pull_request.base.ref }}.zip", "source_artifact_zip": "opensim-core-${{ needs.mac_arm64.outputs.version }}.zip"}' - name: Await opensim-perf workflow uses: Codex-/await-remote-run@v1.11.0 From 568804661ced15b179f31d529594a3287aa73861 Mon Sep 17 00:00:00 2001 From: nickbianco Date: Thu, 24 Oct 2024 10:47:26 -0700 Subject: [PATCH 13/15] Test [build-gui] workflow --- .github/workflows/continuous_integration.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index 60c95ee43b..cf15fce96a 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -1101,8 +1101,8 @@ jobs: path: opensim-core-${{ steps.configure.outputs.version }}-ubuntu22.zip build_gui: - name: Build GUI [win2022] - runs-on: windows-2022 + name: Build GUI + runs-on: ubuntu-latest env: GH_TOKEN: ${{ github.token }} From 55b9a1415a0b350aae6fab59d0bf880fff8239a8 Mon Sep 17 00:00:00 2001 From: nickbianco Date: Thu, 24 Oct 2024 10:51:29 -0700 Subject: [PATCH 14/15] Revert to windows-2022 runner for GUI build --- .github/workflows/continuous_integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index cf15fce96a..e3a3101fa1 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -1102,7 +1102,7 @@ jobs: build_gui: name: Build GUI - runs-on: ubuntu-latest + runs-on: windows-2022 env: GH_TOKEN: ${{ github.token }} From 2711a12d6ed558533db1681c3657ba6706eeeb6c Mon Sep 17 00:00:00 2001 From: nickbianco Date: Thu, 24 Oct 2024 11:14:10 -0700 Subject: [PATCH 15/15] Use ubuntu-latest for GUI job --- .github/workflows/continuous_integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous_integration.yml b/.github/workflows/continuous_integration.yml index e3a3101fa1..cf15fce96a 100644 --- a/.github/workflows/continuous_integration.yml +++ b/.github/workflows/continuous_integration.yml @@ -1102,7 +1102,7 @@ jobs: build_gui: name: Build GUI - runs-on: windows-2022 + runs-on: ubuntu-latest env: GH_TOKEN: ${{ github.token }}