@@ -164,6 +164,7 @@ jobs:
164
164
strategy :
165
165
matrix :
166
166
instance_idx : [ "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17" ]
167
+ fail-fast : false
167
168
steps :
168
169
- uses : actions/checkout@v4
169
170
- uses : ./.github/workflows/ubuntu-prepare
@@ -368,10 +369,10 @@ jobs:
368
369
# We want to include the commit hash to ensure the cache is replaced
369
370
# on each new commit.
370
371
key : ${{ github.sha }}
371
- # We will only save the cache for one of the builds. Though we could
372
+ # We will only save the cache for one of the builds. Though we could
372
373
# just omit this filter and the jobs race to push to the cache, since
373
- # they would all share the same key (combining the `shared-key` and
374
- # `key`) our build would generate a load of warnings. Why this
374
+ # they would all share the same key (combining the `shared-key` and
375
+ # `key`) our build would generate a load of warnings. Why this
375
376
# particular fuzzer? No real reason, but we had to choose one.
376
377
save-if : ${{ matrix.fuzzer == 'binary_only/frida_libpng' }}
377
378
cache-all-crates : true
@@ -392,7 +393,7 @@ jobs:
392
393
fuzzers/${{ matrix.fuzzer }}
393
394
394
395
# This job checks whether any changes have been made to the QEMU code to avoid
395
- # rebuilding and testing the QEMU related fuzzers unnecessarily as they are
396
+ # rebuilding and testing the QEMU related fuzzers unnecessarily as they are
396
397
# more expensive to build
397
398
qemu-changes :
398
399
runs-on : ubuntu-24.04
@@ -620,22 +621,8 @@ jobs:
620
621
shell : bash
621
622
run : just -d utils/${{ matrix.util }} --justfile utils/${{ matrix.util }}/Justfile test
622
623
623
- # Build and test librasan. The setup is common, so we use a matrix build and
624
- # use the task name at the end to select which target to build
625
- librasan :
626
- name : 🔧 librasan - ${{ matrix.task }}
627
- strategy :
628
- matrix :
629
- task :
630
- - build
631
- - test
632
- # If one task fails, then don't abandon the other
633
- fail-fast : false
634
- # Only build this if the QEMU code changes for now. Though agnostic, nobody
635
- # else has integrated librasan with other fuzzers for now.
636
- needs :
637
- - qemu-changes
638
- if : ${{ needs.qemu-changes.outputs.qemu == 'true' }}
624
+ libafl_asan :
625
+ name : 🔧 libafl_asan
639
626
runs-on : ubuntu-24.04
640
627
steps :
641
628
- name : Checkout
@@ -644,44 +631,69 @@ jobs:
644
631
submodules : true
645
632
fetch-depth : 0
646
633
- name : Prepare
647
- uses : ./.github/workflows/librasan -prepare
634
+ uses : ./.github/workflows/asan -prepare
648
635
- name : Configure Cache
649
636
uses : Swatinem/rust-cache@v2
650
637
with :
651
- # Use the task name to build the cache key. We will have a separate
638
+ # Use the task name to build the cache key. We will have a separate
652
639
# cache for each since they are both expensive to build and one builds
653
640
# for many different architectures.
654
- shared-key : librasan-${{ matrix.task }}
641
+ shared-key : libafl_asan
655
642
# We want to include the commit hash to ensure the cache is replaced
656
643
# on each new commit.
657
644
key : ${{ github.sha }}
658
645
cache-all-crates : true
659
646
# Again the artefacts aren't built in the target root directory.
660
647
workspaces : |
661
- libafl_qemu/librasan
662
- # Run only for the build task
663
- - name : Build
664
- if : ${{ matrix.task == 'build' }}
648
+ libafl_asan
649
+ - name : Test
665
650
shell : bash
666
651
run : |
667
652
RUN_ON_CI=1 \
668
653
RUSTC_BOOTSTRAP=1 \
669
654
LLVM_CONFIG=llvm-config-${{env.MAIN_LLVM_VERSION}} \
670
655
just \
671
- -f ./libafl_qemu/librasan/Justfile \
672
- build_everything_dev \
673
- build_x86_64_release
674
- # Run only for the test task
675
- - name : Test
676
- if : ${{ matrix.task == 'test' }}
656
+ -f ./libafl_asan/Justfile \
657
+ test_everything
658
+
659
+ libafl_qemu_asan :
660
+ name : 🔧 libafl_qemu_asan
661
+ needs :
662
+ - qemu-changes
663
+ if : ${{ needs.qemu-changes.outputs.qemu == 'true' }}
664
+ runs-on : ubuntu-24.04
665
+ steps :
666
+ - name : Checkout
667
+ uses : actions/checkout@v4
668
+ with :
669
+ submodules : true
670
+ fetch-depth : 0
671
+ - name : Prepare
672
+ uses : ./.github/workflows/asan-prepare
673
+ - name : Configure Cache
674
+ uses : Swatinem/rust-cache@v2
675
+ with :
676
+ # Use the task name to build the cache key. We will have a separate
677
+ # cache for each since they are both expensive to build and one builds
678
+ # for many different architectures.
679
+ shared-key : libafl_qemu_asan
680
+ # We want to include the commit hash to ensure the cache is replaced
681
+ # on each new commit.
682
+ key : ${{ github.sha }}
683
+ cache-all-crates : true
684
+ # Again the artefacts aren't built in the target root directory.
685
+ workspaces : |
686
+ libafl_qemu/libafl_qemu_asan
687
+ - name : Build
677
688
shell : bash
678
689
run : |
679
690
RUN_ON_CI=1 \
680
691
RUSTC_BOOTSTRAP=1 \
681
692
LLVM_CONFIG=llvm-config-${{env.MAIN_LLVM_VERSION}} \
682
693
just \
683
- -f ./libafl_qemu/librasan/Justfile \
684
- test_everything
694
+ -f ./libafl_qemu/libafl_qemu_asan/Justfile \
695
+ build_everything_dev \
696
+ build_x86_64_release
685
697
686
698
nostd-build :
687
699
runs-on : ubuntu-24.04
@@ -785,7 +797,7 @@ jobs:
785
797
file : ./Dockerfile
786
798
push : ${{ github.ref == 'refs/heads/main' }}
787
799
load : ${{ github.ref != 'refs/heads/main' }}
788
- tags :
800
+ tags :
789
801
ghcr.io/aflplusplus/libafl:latest
790
802
cache-from : |
791
803
type=registry,ref=ghcr.io/aflplusplus/libafl:cache
@@ -840,7 +852,7 @@ jobs:
840
852
- name : Configure Cache
841
853
uses : Swatinem/rust-cache@v2
842
854
with :
843
- # There aren't too many of these fuzzers, so lets just give them a
855
+ # There aren't too many of these fuzzers, so lets just give them a
844
856
# separate cache each for now.
845
857
shared-key : fuzzers-windows-${{ steps.fuzzer_name.outputs.fuzzer_name }}-x86_64
846
858
# We want to include the commit hash to ensure the cache is replaced
@@ -919,7 +931,7 @@ jobs:
919
931
run : cargo install cargo-ndk
920
932
- name : cargo android targets
921
933
run : |
922
- rustup target add x86_64-linux-android
934
+ rustup target add x86_64-linux-android
923
935
- name : Build Android
924
936
env :
925
937
ANDROID_NDK_HOME : ${{ steps.setup-ndk.outputs.ndk-path }}
0 commit comments