Skip to content

Commit 88c8f07

Browse files
author
Benjamin Délèze
authored
Merge pull request cyberbotics#6265 from cyberbotics/master
Merge master in released
2 parents b4731d9 + 5e8af90 commit 88c8f07

7,059 files changed

Lines changed: 87205 additions & 115659 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.eslintrc.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
"Enum": false,
1818
"document": false,
1919
"glm": false,
20+
"libtess": false,
2021
"Module": false,
2122
"navigator": false,
2223
"Quaternion": false,

.github/workflows/discord_updater.yml

Lines changed: 0 additions & 46 deletions
This file was deleted.

.github/workflows/test_suite_linux.yml

Lines changed: 23 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -68,27 +68,20 @@ jobs:
6868
export LIBGL_ALWAYS_SOFTWARE=true
6969
export ROS_DISTRO=${{ matrix.ROS_DISTRO }}
7070
xvfb-run --auto-servernum make distrib -j4
71-
- name: Prepare Webots Controller Deployment
72-
if: ${{ (github.event_name == 'schedule' || contains(github.event.pull_request.labels.*.name, 'deploy libcontroller')) && matrix.os == 'ubuntu-20.04' }}
73-
uses: webfactory/ssh-agent@v0.5.3
74-
with:
75-
ssh-private-key: ${{ secrets.WEBOTS_CONTROLLER_DEPLOY_KEY }}
76-
- name: Deploy Webots Controller
77-
if: ${{ (github.event_name == 'schedule' || contains(github.event.pull_request.labels.*.name, 'deploy libcontroller')) && matrix.os == 'ubuntu-20.04' }}
78-
run: scripts/packaging/sync_controller_lib.sh
7971
- name: Create/Update GitHub release
8072
if: ${{ matrix.os == 'ubuntu-20.04' && (github.event_name == 'push' || github.event_name == 'schedule') }}
8173
run: |
8274
sudo python -m pip install requests PyGithub
75+
pip install pyopenssl --upgrade
8376
scripts/packaging/publish_release.py --key=${{ secrets.GITHUB_TOKEN }} --repo=${{ github.repository }} --branch=${{ github.ref }} --commit=$(git log -1 --format='%H') --tag=${{ github.ref }}
84-
- uses: actions/upload-artifact@v2
77+
- uses: actions/upload-artifact@v3
8578
if: ${{ contains(github.event.pull_request.labels.*.name, 'test suite') || contains(github.event.pull_request.labels.*.name, 'test ros') || contains(github.event.pull_request.labels.*.name, 'test worlds') }}
8679
with:
8780
name: build-${{ matrix.os }}
8881
path: |
8982
distribution/*.tar.bz2
9083
distribution/*.zip
91-
- uses: actions/upload-artifact@v2
84+
- uses: actions/upload-artifact@v3
9285
if: ${{ !contains(github.event.pull_request.labels.*.name, 'test suite') && !contains(github.event.pull_request.labels.*.name, 'test ros') && !contains(github.event.pull_request.labels.*.name, 'test worlds') }}
9386
with:
9487
name: build-${{ matrix.os }}
@@ -107,7 +100,7 @@ jobs:
107100
steps:
108101
- uses: actions/checkout@v3
109102
- name: Download Artifacts
110-
uses: actions/download-artifact@v2
103+
uses: actions/download-artifact@v3
111104
with:
112105
name: build-ubuntu-20.04
113106
path: artifact
@@ -116,7 +109,7 @@ jobs:
116109
- name: Install Webots Dependencies
117110
run: sudo scripts/install/linux_test_dependencies.sh --exclude-ros
118111
- name: Set up Python 3.9
119-
uses: actions/setup-python@v2
112+
uses: actions/setup-python@v4
120113
with:
121114
python-version: 3.9
122115
- name: Test Suite
@@ -128,6 +121,12 @@ jobs:
128121
export TESTS_HOME=$PWD # required by cache group in the test suite
129122
export BRANCH_HASH=$(git log -1 --format='%H')
130123
xvfb-run --auto-servernum python tests/test_suite.py
124+
- uses: actions/upload-artifact@v3
125+
if: failure()
126+
with:
127+
name: test-results-${{ matrix.os }}
128+
path: |
129+
tests/
131130
test-ros:
132131
needs: build
133132
if: ${{ contains(github.event.pull_request.labels.*.name, 'test ros') || github.event_name == 'schedule' }}
@@ -145,7 +144,7 @@ jobs:
145144
with:
146145
submodules: true
147146
- name: Download Artifacts
148-
uses: actions/download-artifact@v2
147+
uses: actions/download-artifact@v3
149148
with:
150149
name: build-${{ matrix.os }}
151150
path: artifact
@@ -154,7 +153,7 @@ jobs:
154153
- name: Install Webots Dependencies
155154
run: sudo scripts/install/linux_test_dependencies.sh
156155
- name: Set up Python ${{ matrix.python }}
157-
uses: actions/setup-python@v2
156+
uses: actions/setup-python@v4
158157
with:
159158
python-version: ${{ matrix.python }}
160159
- name: Run Test
@@ -171,44 +170,33 @@ jobs:
171170
if: ${{ contains(github.event.pull_request.labels.*.name, 'test worlds') || github.event_name == 'schedule' }}
172171
runs-on: ubuntu-20.04
173172
steps:
174-
- uses: actions/checkout@v3
175173
- name: Download Artifacts
176-
uses: actions/download-artifact@v2
174+
uses: actions/download-artifact@v3
177175
with:
178176
name: build-ubuntu-20.04
179177
path: artifact
178+
- name: Get branch name
179+
id: branch-name
180+
uses: tj-actions/branch-names@v5.1
180181
- name: Extract Webots and Cache
181182
run: |
182183
tar xjf artifact/webots-*-x86-64*.tar.bz2 -C artifact
184+
cp -R artifact/ untouched-artifact/
183185
mkdir -p ~/.cache/Cyberbotics/Webots/
184186
unzip -q artifact/assets-*.zip -d ~/.cache/Cyberbotics/Webots/assets
185-
- name: Install Webots Dependencies
186-
run: sudo scripts/install/linux_runtime_dependencies.sh
187187
- name: Set up Python 3.9
188-
uses: actions/setup-python@v2
188+
uses: actions/setup-python@v4
189189
with:
190190
python-version: 3.9
191191
- name: Update World, Check Warnings and Validate Cache
192192
run: |
193-
git config --global user.name ${GITHUB_ACTOR}
194-
git config --global user.email ${GITHUB_ACTOR}@github.com
193+
wget https://raw.githubusercontent.com/cyberbotics/webots/${{ steps.branch-name.outputs.current_branch }}/scripts/install/linux_runtime_dependencies.sh && sudo bash linux_runtime_dependencies.sh
195194
export LIBGL_ALWAYS_SOFTWARE=true
196195
export WEBOTS_DISABLE_SAVE_SCREEN_PERSPECTIVE_ON_CLOSE=true
197-
xvfb-run --auto-servernum python scripts/packaging/update_urls.py $(git log -1 --format='%H')
198-
echo "Updated urls with commit $(git log -1 --format='%H')"
199-
git add -u && git commit -m "Fake-commit the updated urls so that no diff exists prior to running the test"
200196
export WEBOTS_HOME=$PWD/artifact/webots
201-
if [[ -d ~/.cache/Cyberbotics/Webots/assets/ ]]; then cached_files_before=$(ls ~/.cache/Cyberbotics/Webots/assets/ | wc -l); else cached_files_before=0; fi
202-
xvfb-run --auto-servernum python tests/test_worlds.py
203-
if [[ "$(git diff --name-only *.wbt *.wbproj | wc -l)" -ne "0" ]]; then echo Some world and/or wbproj files are not up to date: "$(git diff *.wbt *.wbproj)"; exit -1; fi
204-
if [[ -d ~/.cache/Cyberbotics/Webots/assets/ ]]; then cached_files_after=$(ls ~/.cache/Cyberbotics/Webots/assets/ | wc -l); else cached_files_after=0; fi
205-
# Note: need an offset of 22 because world 'url.wbt' uses non-cached assets on purpose
206-
if [ "$cached_files_after" -ne "$((cached_files_before + 22))" ]; then
207-
echo "Some assets are not included in the cache (before $cached_files_before, after $cached_files_after)";
208-
echo "Asset log content is:"
209-
cat ~/.cache/Cyberbotics/Webots/assets/log.txt
210-
exit 1
211-
fi
197+
wget https://raw.githubusercontent.com/cyberbotics/webots/${{ steps.branch-name.outputs.current_branch }}/tests/test_worlds.py
198+
xvfb-run --auto-servernum python3 test_worlds.py
199+
if [[ "$(diff -qr artifact/ untouched-artifact/ | wc -l)" -ne "0" ]]; then echo Some world and/or wbproj files are not up to date: "$(diff -qr artifact/ untouched-artifact/)"; exit 1; fi
212200
delete-artifacts:
213201
needs: [build, test-suite, test-ros, test-worlds]
214202
if: ${{ always() && !contains(github.event.pull_request.labels.*.name, 'test distribution') && !contains(github.event.pull_request.labels.*.name, 'test webots build') }}

.github/workflows/test_suite_linux_develop.yml

Lines changed: 14 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -64,27 +64,20 @@ jobs:
6464
export LIBGL_ALWAYS_SOFTWARE=true
6565
export ROS_DISTRO=${{ matrix.ROS_DISTRO }}
6666
xvfb-run --auto-servernum make distrib -j4
67-
- name: Prepare Webots Controller Deployment
68-
if: ${{ (github.event_name == 'schedule' || contains(github.event.pull_request.labels.*.name, 'deploy libcontroller')) && matrix.os == 'ubuntu-20.04' }}
69-
uses: webfactory/ssh-agent@v0.5.3
70-
with:
71-
ssh-private-key: ${{ secrets.WEBOTS_CONTROLLER_DEPLOY_KEY }}
72-
- name: Deploy Webots Controller
73-
if: ${{ (github.event_name == 'schedule' || contains(github.event.pull_request.labels.*.name, 'deploy libcontroller')) && matrix.os == 'ubuntu-20.04' }}
74-
run: scripts/packaging/sync_controller_lib.sh
7567
- name: Create/Update GitHub release
7668
if: ${{ matrix.os == 'ubuntu-20.04' && (github.event_name == 'push' || github.event_name == 'schedule') }}
7769
run: |
7870
sudo python -m pip install requests PyGithub
71+
pip install pyopenssl --upgrade
7972
scripts/packaging/publish_release.py --key=${{ secrets.GITHUB_TOKEN }} --repo=${{ github.repository }} --branch=${{ github.ref }} --commit=$(git log -1 --format='%H') --tag=${{ github.ref }}
80-
- uses: actions/upload-artifact@v2
73+
- uses: actions/upload-artifact@v3
8174
if: ${{ contains(github.event.pull_request.labels.*.name, 'test suite') || contains(github.event.pull_request.labels.*.name, 'test ros') || contains(github.event.pull_request.labels.*.name, 'test worlds') }}
8275
with:
8376
name: build-${{ matrix.os }}
8477
path: |
8578
distribution/*.tar.bz2
8679
distribution/*.zip
87-
- uses: actions/upload-artifact@v2
80+
- uses: actions/upload-artifact@v3
8881
if: ${{ !contains(github.event.pull_request.labels.*.name, 'test suite') && !contains(github.event.pull_request.labels.*.name, 'test ros') && !contains(github.event.pull_request.labels.*.name, 'test worlds') }}
8982
with:
9083
name: build-${{ matrix.os }}
@@ -105,7 +98,7 @@ jobs:
10598
with:
10699
ref: develop
107100
- name: Download Artifacts
108-
uses: actions/download-artifact@v2
101+
uses: actions/download-artifact@v3
109102
with:
110103
name: build-ubuntu-20.04
111104
path: artifact
@@ -144,7 +137,7 @@ jobs:
144137
submodules: true
145138
ref: develop
146139
- name: Download Artifacts
147-
uses: actions/download-artifact@v2
140+
uses: actions/download-artifact@v3
148141
with:
149142
name: build-${{ matrix.os }}
150143
path: artifact
@@ -170,43 +163,33 @@ jobs:
170163
if: ${{ contains(github.event.pull_request.labels.*.name, 'test worlds') || github.event_name == 'schedule' }}
171164
runs-on: ubuntu-20.04
172165
steps:
173-
- uses: actions/checkout@v3
174-
with:
175-
ref: develop
176166
- name: Download Artifacts
177-
uses: actions/download-artifact@v2
167+
uses: actions/download-artifact@v3
178168
with:
179169
name: build-ubuntu-20.04
180170
path: artifact
171+
- name: Get branch name
172+
id: branch-name
173+
uses: tj-actions/branch-names@v5.1
181174
- name: Extract Webots and Cache
182175
run: |
183176
tar xjf artifact/webots-*-x86-64*.tar.bz2 -C artifact
177+
cp -R artifact/ untouched-artifact/
184178
mkdir -p ~/.cache/Cyberbotics/Webots/
185179
unzip -q artifact/assets-*.zip -d ~/.cache/Cyberbotics/Webots/assets
186-
- name: Install Webots Dependencies
187-
run: sudo scripts/install/linux_runtime_dependencies.sh
188180
- name: Set up Python 3.9
189181
uses: actions/setup-python@v2
190182
with:
191183
python-version: 3.9
192184
- name: Update World, Check Warnings and Validate Cache
193185
run: |
194-
git config --global user.name ${GITHUB_ACTOR}
195-
git config --global user.email ${GITHUB_ACTOR}@github.com
186+
wget https://raw.githubusercontent.com/cyberbotics/webots/${{ steps.branch-name.outputs.current_branch }}/scripts/install/linux_runtime_dependencies.sh && sudo bash linux_runtime_dependencies.sh
196187
export LIBGL_ALWAYS_SOFTWARE=true
197188
export WEBOTS_DISABLE_SAVE_SCREEN_PERSPECTIVE_ON_CLOSE=true
198-
xvfb-run --auto-servernum python scripts/packaging/update_urls.py $(git log -1 --format='%H')
199-
git add -u && git commit -m "Fake-commit the updated urls so that no diff exists prior to running the test"
200189
export WEBOTS_HOME=$PWD/artifact/webots
201-
if [[ -d ~/.cache/Cyberbotics/Webots/assets/ ]]; then cached_files_before=$(ls ~/.cache/Cyberbotics/Webots/assets/ | wc -l); else cached_files_before=0; fi
202-
xvfb-run --auto-servernum python tests/test_worlds.py
203-
if [[ "$(git diff --name-only *.wbt *.wbproj | wc -l)" -ne "0" ]]; then echo Some world and/or wbproj files are not up to date: "$(git diff *.wbt *.wbproj)"; exit -1; fi
204-
if [[ -d ~/.cache/Cyberbotics/Webots/assets/ ]]; then cached_files_after=$(ls ~/.cache/Cyberbotics/Webots/assets/ | wc -l); else cached_files_after=0; fi
205-
# Note: need an offset of 22 because world 'url.wbt' uses non-cached assets on purpose
206-
if [ "$cached_files_after" -ne "$((cached_files_before + 22))" ]; then
207-
echo "Some assets are not included in the cache (before $cached_files_before, after $cached_files_after)";
208-
exit 1
209-
fi
190+
sudo apt install -y wget && wget https://raw.githubusercontent.com/cyberbotics/webots/${{ steps.branch-name.outputs.current_branch }}/tests/test_worlds.py
191+
xvfb-run --auto-servernum python3 test_worlds.py
192+
if [[ "$(diff -qr artifact/ untouched-artifact/ | wc -l)" -ne "0" ]]; then echo Some world and/or wbproj files are not up to date: "$(diff -qr artifact/ untouched-artifact/)"; exit 1; fi
210193
delete-artifacts:
211194
needs: [build, test-suite, test-ros, test-worlds]
212195
if: ${{ always() && !contains(github.event.pull_request.labels.*.name, 'test distribution') && !contains(github.event.pull_request.labels.*.name, 'test webots build') }}

.github/workflows/test_suite_mac.yml

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -42,47 +42,22 @@ jobs:
4242
fetch-depth: 15
4343
- name: Install Webots Compilation Dependencies
4444
run: |
45-
# swig wget cmake python@3.8 python@3.9 and python@3.10 are already installed
46-
if HOMEBREW_NO_INSTALL_CLEANUP=1 brew install python@3.7; then
47-
echo "Installation of Python3.7 successful"
48-
else
49-
echo "Installation of Python3.7 failed"
50-
fi
45+
# swig wget and cmake are already installed
5146
npm install -g appdmg
52-
# install regular Python 3.7
53-
wget -qq https://www.python.org/ftp/python/3.7.9/python-3.7.9-macosx10.9.pkg
54-
sudo installer -pkg python-3.7.9-macosx10.9.pkg -target /
55-
# install regular Python 3.8
56-
wget -qq https://www.python.org/ftp/python/3.8.10/python-3.8.10-macos11.pkg
57-
sudo installer -pkg python-3.8.10-macos11.pkg -target /
58-
# install regular Python 3.9
59-
wget -qq https://www.python.org/ftp/python/3.9.13/python-3.9.13-macos11.pkg
60-
sudo installer -pkg python-3.9.13-macos11.pkg -target /
61-
# install regular Python 3.10
62-
wget -qq https://www.python.org/ftp/python/3.10.5/python-3.10.5-macos11.pkg
63-
sudo installer -pkg python-3.10.5-macos11.pkg -target /
6447
- name: Set Commit SHA in Version
6548
if: ${{ github.event_name == 'schedule' }}
6649
run: python scripts/packaging/set_commit_and_date_in_version.py $(git log -1 --format='%H')
6750
- name: Webots Package Creation
6851
run: |
6952
export JAVA_HOME="$(/usr/libexec/java_home -v 16)"
70-
export PATH=/Library/Frameworks/Python.framework/Versions/3.10/bin:/Library/Frameworks/Python.framework/Versions/3.9/bin:/Library/Frameworks/Python.framework/Versions/3.8/bin:/Library/Frameworks/Python.framework/Versions/3.7/bin:/usr/local/bin/:$PATH
53+
export PATH=/Library/Frameworks/Python.framework/Versions/3.11/bin:/usr/local/bin/:$PATH
7154
make distrib -j4
72-
- name: Prepare Webots Controller Deployment
73-
if: ${{ github.event_name == 'schedule' || contains(github.event.pull_request.labels.*.name, 'deploy libcontroller') }}
74-
uses: webfactory/ssh-agent@v0.5.3
75-
with:
76-
ssh-private-key: ${{ secrets.WEBOTS_CONTROLLER_DEPLOY_KEY }}
77-
- name: Deploy Webots Controller
78-
if: ${{ github.event_name == 'schedule' || contains(github.event.pull_request.labels.*.name, 'deploy libcontroller') }}
79-
run: scripts/packaging/sync_controller_lib.sh
8055
- name: Create/Update GitHub release
8156
if: ${{ (github.event_name == 'push' || github.event_name == 'schedule') }}
8257
run: |
8358
sudo python -m pip install requests PyGithub
8459
scripts/packaging/publish_release.py --key=${{ secrets.GITHUB_TOKEN }} --repo=${{ github.repository }} --branch=${{ github.ref }} --commit=$(git log -1 --format='%H') --tag=${{ github.ref }}
85-
- uses: actions/upload-artifact@v2
60+
- uses: actions/upload-artifact@v3
8661
if: ${{ contains(github.event.pull_request.labels.*.name, 'test suite') || contains(github.event.pull_request.labels.*.name, 'test distribution') }}
8762
with:
8863
name: build-${{ matrix.os }}
@@ -98,7 +73,7 @@ jobs:
9873
steps:
9974
- uses: actions/checkout@v3
10075
- name: Download Artifacts
101-
uses: actions/download-artifact@v2
76+
uses: actions/download-artifact@v3
10277
with:
10378
name: build-${{ matrix.os }}
10479
path: artifact
@@ -107,10 +82,10 @@ jobs:
10782
hdiutil mount artifact/webots-*.dmg
10883
sudo cp -R /Volumes/Webots/Webots.app /Applications
10984
hdiutil unmount /Volumes/Webots
110-
- name: Set up Python 3.9
111-
uses: actions/setup-python@v2
85+
- name: Set up Python 3.11
86+
uses: actions/setup-python@v4
11287
with:
113-
python-version: 3.9
88+
python-version: 3.11
11489
- name: Test
11590
run:
11691
export WEBOTS_DISABLE_SAVE_SCREEN_PERSPECTIVE_ON_CLOSE=true

0 commit comments

Comments
 (0)