Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ss #9

Merged
merged 3 commits into from
Dec 28, 2020
Merged

ss #9

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 60 additions & 0 deletions .github/workflows/linux_builds_jarjar.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: 🐧 Linux Builds
on: [push, pull_request]

jobs:
linux-sanitizer:
runs-on: "ubuntu-20.04"
name: Editor and exported project with sanitizers (target=debug/release, tools=yes/no, debug_symbols=yes, use_ubsan=yes, use_asan=yes)

steps:
- uses: actions/checkout@v2

# Azure repositories are not reliable, we need to prevent azure giving us packages.
- name: Make apt sources.list use the default Ubuntu repositories
run: |
sudo rm -f /etc/apt/sources.list.d/*
sudo cp -f misc/ci/sources.list /etc/apt/sources.list
sudo apt-get update

# Install all packages (except scons)
- name: Configure dependencies
run: |
sudo apt-get install build-essential pkg-config libx11-dev libxcursor-dev \
libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev yasm \
xvfb wget2 unzip python scons git

# - name: Download Godot
# run: |
# wget2 https://archive.hugo.pro/builds/godot/master/editor/godot-linux-nightly-x86_64.zip
# unzip godot-linux-nightly-x86_64.zip
# rm godot-linux-nightly-x86_64.zip
# mv godot godot.linuxbsd.tools.64s

# - name: Download Godot(ZIP)
# run: |
# wget2 https://github.com/godotengine/godot/archive/3.2.zip
# unzip 3.2.zip
# rm 3.2.zip


- name: Download Godot(GIT)
run: |
git clone https://github.com/lawnjelly/godot.git
cd godot
git checkout jarjar
cd ../

- name: Compile Godot
run: |
cd godot
scons p=linuxbsd -j2 use_asan=yes use_ubsan=yes CCFLAGS="-fsanitize=shift,shift-exponent,integer-divide-by-zero,unreachable,vla-bound,null,return,signed-integer-overflow,bounds,float-divide-by-zero,float-cast-overflow,nonnull-attribute,returns-nonnull-attribute,bool,enum,vptr"
cp bin/godot.linuxbsd.tools.64s ../
true || cp bin/godot.linuxbsd.opt.64s ../
cd ../
rm -rf godot

- name: Use Godot
run: |
echo "-------------------- RUN PROJECT -----------------------"
DRI_PRIME=0 xvfb-run ./godot.linuxbsd.tools.64s 60 --rendering-driver GLES2 --audio-driver Dummy --video-driver GLES3 --path $(pwd) 2>&1 | tee sanitizers_log.txt || true
misc/check_ci_log.py sanitizers_log.txt
66 changes: 66 additions & 0 deletions .github/workflows/linux_builds_master.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: 🐧 Linux Builds
on: [push, pull_request]

jobs:
linux-sanitizer:
runs-on: "ubuntu-20.04"
name: Editor and exported project with sanitizers (target=debug/release, tools=yes/no, debug_symbols=yes, use_ubsan=yes, use_asan=yes)

steps:
- uses: actions/checkout@v2

# Azure repositories are not reliable, we need to prevent azure giving us packages.
- name: Make apt sources.list use the default Ubuntu repositories
run: |
sudo rm -f /etc/apt/sources.list.d/*
sudo cp -f misc/ci/sources.list /etc/apt/sources.list
sudo apt-get update

# Install all packages (except scons)
- name: Configure dependencies
run: |
sudo apt-get install build-essential pkg-config libx11-dev libxcursor-dev \
libxinerama-dev libgl1-mesa-dev libglu-dev libasound2-dev libpulse-dev libudev-dev libxi-dev libxrandr-dev yasm \
xvfb wget2 unzip python scons git

# - name: Download Godot
# run: |
# wget2 https://archive.hugo.pro/builds/godot/master/editor/godot-linux-nightly-x86_64.zip
# unzip godot-linux-nightly-x86_64.zip
# rm godot-linux-nightly-x86_64.zip
# mv godot godot.linuxbsd.tools.64s

# - name: Download Godot(ZIP)
# run: |
# wget2 https://github.com/godotengine/godot/archive/3.2.zip
# unzip 3.2.zip
# rm 3.2.zip


- name: Download Godot(GIT)
run: |
git clone https://github.com/godotengine/godot.git
cd godot
git checkout master
cd ../

- name: Compile Godot
run: |
cd godot
scons p=linuxbsd -j2 use_asan=yes use_ubsan=yes CCFLAGS="-fsanitize=shift,shift-exponent,integer-divide-by-zero,unreachable,vla-bound,null,return,signed-integer-overflow,bounds,float-divide-by-zero,float-cast-overflow,nonnull-attribute,returns-nonnull-attribute,bool,enum,vptr"
cp bin/godot.linuxbsd.tools.64s ../
true || cp bin/godot.linuxbsd.opt.64s ../
cd ../
rm -rf godot

- name: Use Godot
run: |
echo "-------------------- OPEN EDITOR TO IMPORT PROJECT -----------------------"
DRI_PRIME=0 timeout 25s xvfb-run ./godot.linuxbsd.tools.64s --audio-driver Dummy -e --path $(pwd) 2>&1 | tee sanitizers_log.txt || true
misc/check_ci_log.py sanitizers_log.txt
echo "-------------------- OPEN EDITOR SECOND TIME TO BE SURE THAT EVERYTHING WAS IMPORTED -----------------------"
DRI_PRIME=0 xvfb-run ./godot.linuxbsd.tools.64s --audio-driver Dummy -e -q --path $(pwd) 2>&1 | tee sanitizers_log.txt || true
misc/check_ci_log.py sanitizers_log.txt
echo "-------------------- RUN PROJECT -----------------------"
DRI_PRIME=0 xvfb-run ./godot.linuxbsd.tools.64s 60 --audio-driver Dummy --video-driver GLES3 --path $(pwd) 2>&1 | tee sanitizers_log.txt || true
misc/check_ci_log.py sanitizers_log.txt
2 changes: 2 additions & 0 deletions misc/check_ci_log.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
print("FATAL ERROR: Godot has been crashed.")
sys.exit(1)

sys.exit(0)

# Finding memory leaks in Godot is quite difficult, because we need to take into
# account leaks also in external libraries. They are usually provided without
# debugging symbols, so the leak report from it usually has only 2/3 lines,
Expand Down