Skip to content

Commit 6251ad0

Browse files
authored
Update llvm version in CI (#1533)
* UPD * UPD * UPD * UPD * MORE * ?? * Update build_and_test.yml * LLVM 15 * Update build_and_test.yml * chg * Update build_and_test.yml * Update build_and_test.yml
1 parent a092aed commit 6251ad0

File tree

1 file changed

+28
-10
lines changed

1 file changed

+28
-10
lines changed

.github/workflows/build_and_test.yml

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -63,12 +63,14 @@ jobs:
6363
with:
6464
profile: minimal
6565
toolchain: stable
66+
- name: Remove existing clang and LLVM
67+
run: sudo apt purge llvm* clang*
6668
- name: Install and cache deps
6769
uses: awalsh128/[email protected]
6870
with:
69-
packages: llvm llvm-dev clang ninja-build clang-format-13 shellcheck libgtk-3-dev gcc-arm-linux-gnueabi g++-arm-linux-gnueabi libslirp-dev libz3-dev
71+
packages: llvm-15 llvm-15-dev clang-15 ninja-build clang-format-13 shellcheck libgtk-3-dev gcc-arm-linux-gnueabi g++-arm-linux-gnueabi libslirp-dev libz3-dev
7072
- name: get clang version
71-
run: command -v llvm-config && clang -v
73+
run: command -v llvm-config-15 && clang-15 -v
7274
- name: Add nightly rustfmt and clippy
7375
run: rustup toolchain install nightly --component rustfmt --component clippy --component miri --allow-downgrade
7476
- uses: actions/checkout@v3
@@ -122,12 +124,14 @@ jobs:
122124
with:
123125
profile: minimal
124126
toolchain: stable
127+
- name: Remove existing clang and LLVM
128+
run: sudo apt purge llvm* clang*
125129
- name: Install and cache deps
126130
uses: awalsh128/[email protected]
127131
with:
128-
packages: llvm llvm-dev clang ninja-build clang-format-13 shellcheck libgtk-3-dev gcc-arm-linux-gnueabi g++-arm-linux-gnueabi libslirp-dev libz3-dev
132+
packages: llvm-15 llvm-15-dev clang-15 ninja-build clang-format-13 shellcheck libgtk-3-dev gcc-arm-linux-gnueabi g++-arm-linux-gnueabi libslirp-dev libz3-dev
129133
- name: get clang version
130-
run: command -v llvm-config && clang -v
134+
run: command -v llvm-config-15 && clang-15 -v
131135
- name: Install cargo-hack
132136
run: curl -LsSf https://github.com/taiki-e/cargo-hack/releases/latest/download/cargo-hack-x86_64-unknown-linux-gnu.tar.gz | tar xzf - -C ~/.cargo/bin
133137
- name: Add nightly
@@ -166,14 +170,16 @@ jobs:
166170
with:
167171
profile: minimal
168172
toolchain: stable
173+
- name: Remove existing clang and LLVM
174+
run: sudo apt purge llvm* clang*
169175
- name: Install deps
170-
run: sudo apt-get install -y llvm llvm-dev clang ninja-build python3-dev python3-pip python3-venv libz3-dev
176+
run: sudo apt-get install -y llvm-15 llvm-15-dev clang-15 ninja-build python3-dev python3-pip python3-venv libz3-dev
171177
- name: Install maturin
172178
run: python3 -m pip install maturin
173179
- uses: actions/checkout@v3
174180
- uses: Swatinem/rust-cache@v2
175181
- name: Run a maturin build
176-
run: cd ./bindings/pylibafl && python3 -m venv .env && . .env/bin/activate && pip install --upgrade --force-reinstall . && ./test.sh
182+
run: LLVM_CONFIG_PATH=llvm-config-15 cd ./bindings/pylibafl && python3 -m venv .env && . .env/bin/activate && pip install --upgrade --force-reinstall . && ./test.sh
177183
- name: Run python test
178184
run: . ./bindings/pylibafl/.env/bin/activate && cd ./fuzzers/baby_fuzzer && python3 baby_fuzzer.py 2>&1 | grep "Bye"
179185

@@ -206,12 +212,18 @@ jobs:
206212
# Removing macOS things already installed in CI against failed linking
207213
if: runner.os == 'macOS'
208214
run: rm /usr/local/bin/2to3* /usr/local/bin/idle3* /usr/local/bin/pydoc3* /usr/local/bin/python3*; brew install --force-bottle --overwrite python
215+
- name: Remove obsolete llvm (macOS)
216+
if: runner.os == 'macOS'
217+
run: brew remove --force llvm clang
218+
- name: Remove obsolete llvm (Linux)
219+
if: runner.os == 'Linux'
220+
run: sudo apt purge llvm* clang*
209221
- uses: lyricwulf/abc@v1
210222
with:
211223
# todo: remove afl++-clang when nyx support samcov_pcguard
212-
linux: llvm llvm-dev clang nasm ninja-build gcc-arm-linux-gnueabi g++-arm-linux-gnueabi gcc-aarch64-linux-gnu g++-aarch64-linux-gnu gcc-mipsel-linux-gnu g++-mipsel-linux-gnu gcc-powerpc-linux-gnu g++-powerpc-linux-gnu libc6-dev-i386-cross libc6-dev libc6-dev-i386 lib32gcc-11-dev lib32stdc++-11-dev libgtk-3-dev afl++-clang pax-utils libz3-dev
224+
linux: llvm-15 llvm-15-dev clang-15 nasm ninja-build gcc-arm-linux-gnueabi g++-arm-linux-gnueabi gcc-aarch64-linux-gnu g++-aarch64-linux-gnu gcc-mipsel-linux-gnu g++-mipsel-linux-gnu gcc-powerpc-linux-gnu g++-powerpc-linux-gnu libc6-dev-i386-cross libc6-dev libc6-dev-i386 lib32gcc-11-dev lib32stdc++-11-dev libgtk-3-dev afl++-clang pax-utils libz3-dev
213225
# update bash for macos to support `declare -A` command`
214-
macos: llvm libpng nasm coreutils z3 bash wget
226+
macos: llvm@15 libpng nasm coreutils z3 bash wget
215227
- name: pip install
216228
run: python3 -m pip install msgpack jinja2 find_libpython
217229
# Note that nproc needs to have coreutils installed on macOS, so the order of CI commands matters.
@@ -258,10 +270,16 @@ jobs:
258270
- name: Fix python (macOS)
259271
if: runner.os == 'macOS'
260272
run: rm /usr/local/bin/2to3* /usr/local/bin/idle3* /usr/local/bin/pydoc3* /usr/local/bin/python3*
273+
- name: Remove obsolete llvm (macOS)
274+
if: runner.os == 'macOS'
275+
run: brew remove --force llvm clang
276+
- name: Remove obsolete llvm (Linux)
277+
if: runner.os == 'Linux'
278+
run: sudo apt purge llvm* clang*
261279
- uses: lyricwulf/abc@v1
262280
with:
263-
linux: llvm llvm-dev clang
264-
macos: [email protected] llvm bash coreutils
281+
linux: llvm-15 llvm-15-dev clang-15
282+
macos: [email protected] llvm@15 bash coreutils
265283
- uses: actions/checkout@v3
266284
with:
267285
submodules: true # recursively checkout submodules

0 commit comments

Comments
 (0)