Skip to content

Commit

Permalink
Get sarif files.
Browse files Browse the repository at this point in the history
Signed-off-by: Ilya Maximets <[email protected]>
  • Loading branch information
igsilya committed Sep 28, 2024
1 parent 6c7b132 commit eb212a6
Showing 1 changed file with 4 additions and 342 deletions.
346 changes: 4 additions & 342 deletions .github/workflows/build-and-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -74,207 +74,6 @@ jobs:
if: steps.dpdk_cache.outputs.cache-hit != 'true'
run: ./.ci/dpdk-build.sh

build-linux:
needs: build-dpdk
env:
dependencies: |
automake libtool gcc bc libjemalloc2 libjemalloc-dev libssl-dev \
llvm-dev libnuma-dev libpcap-dev selinux-policy-dev libbpf-dev \
lftp libreswan
CC: ${{ matrix.compiler }}
DPDK: ${{ matrix.dpdk }}
DPDK_SHARED: ${{ matrix.dpdk_shared }}
LIBS: ${{ matrix.libs }}
M32: ${{ matrix.m32 }}
OPTS: ${{ matrix.opts }}
SANITIZERS: ${{ matrix.sanitizers }}
STD: ${{ matrix.std }}
TESTSUITE: ${{ matrix.testsuite }}
TEST_RANGE: ${{ matrix.test_range }}

name: linux ${{ join(matrix.*, ' ') }}
runs-on: ubuntu-22.04
timeout-minutes: 30

strategy:
fail-fast: false
matrix:
include:
- compiler: gcc
opts: --disable-ssl
- compiler: clang
opts: --disable-ssl

- compiler: gcc
std: c99
- compiler: clang
std: c99

- compiler: gcc
testsuite: test
- compiler: clang
sanitizers: address,undefined
testsuite: test

- compiler: gcc
testsuite: test
opts: --enable-shared
- compiler: clang
testsuite: test
opts: --enable-shared

- compiler: gcc
testsuite: check check-dpdk
dpdk: dpdk
- compiler: clang
testsuite: check check-dpdk
dpdk: dpdk

- compiler: gcc
testsuite: test
libs: -ljemalloc
- compiler: clang
testsuite: test
libs: -ljemalloc

- compiler: gcc
opts: --enable-afxdp
- compiler: clang
opts: --enable-afxdp

- compiler: gcc
dpdk: dpdk
opts: --enable-shared
- compiler: clang
dpdk: dpdk
opts: --enable-shared

- compiler: gcc
dpdk_shared: dpdk-shared
- compiler: clang
dpdk_shared: dpdk-shared

- compiler: gcc
dpdk_shared: dpdk-shared
opts: --enable-shared
- compiler: clang
dpdk_shared: dpdk-shared
opts: --enable-shared

- compiler: gcc
m32: m32
opts: --disable-ssl

- compiler: gcc
testsuite: check-ovsdb-cluster

- compiler: gcc
testsuite: check-kernel
test_range: "-100"
- compiler: gcc
testsuite: check-kernel
test_range: "100-"

- compiler: clang
sanitizers: address,undefined
testsuite: check-kernel
test_range: "-100"
- compiler: clang
sanitizers: address,undefined
testsuite: check-kernel
test_range: "100-"

- compiler: gcc
testsuite: check-offloads
test_range: "-100"
- compiler: gcc
testsuite: check-offloads
test_range: "100-"

- compiler: gcc
dpdk: dpdk
testsuite: check-system-userspace

- compiler: clang
sanitizers: address,undefined
dpdk: dpdk
testsuite: check-system-userspace

- compiler: gcc
dpdk: dpdk
testsuite: check-system-tso

- compiler: gcc
dpdk: dpdk
testsuite: check-afxdp

steps:
- name: checkout
uses: actions/checkout@v4

- name: update PATH
run: |
echo "$HOME/bin" >> $GITHUB_PATH
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: set up python
uses: actions/setup-python@v5
with:
python-version: ${{ env.python_default }}

- name: cache
if: matrix.dpdk != '' || matrix.dpdk_shared != ''
uses: actions/cache@v4
with:
path: dpdk-dir
key: ${{ needs.build-dpdk.outputs.dpdk_key }}

- name: update APT cache
run: sudo apt update || true
- name: install common dependencies
run: sudo apt install -y ${{ env.dependencies }}
- name: install libunbound libunwind python3-unbound
# GitHub Actions doesn't have 32-bit versions of these libraries.
if: matrix.m32 == ''
run: sudo apt install -y libunbound-dev libunwind-dev python3-unbound
- name: install 32-bit libraries
if: matrix.m32 != ''
run: sudo apt install -y gcc-multilib

- name: Reduce ASLR entropy
if: matrix.sanitizers != ''
# Asan in llvm 14 provided in ubuntu-22.04 is incompatible with
# high-entropy ASLR configured in much newer kernels that GitHub
# runners are using leading to random crashes:
# https://github.com/actions/runner-images/issues/9491
run: sudo sysctl -w vm.mmap_rnd_bits=28

- name: prepare
run: ./.ci/linux-prepare.sh

- name: build
run: ./.ci/linux-build.sh

- name: copy logs on failure
if: failure() || cancelled()
run: |
# upload-artifact throws exceptions if it tries to upload socket
# files and we could have some socket files in testsuite.dir.
# Also, upload-artifact doesn't work well enough with wildcards.
# So, we're just archiving everything here to avoid any issues.
mkdir logs
cp config.log ./logs/
cp -r ./*/_build/sub/tests/testsuite.* ./logs/ || true
sudo cp -r ./tests/*testsuite.* ./logs/ || true
sudo tar -czvf logs.tgz logs/
- name: upload logs on failure
if: failure() || cancelled()
uses: actions/upload-artifact@v4
with:
name: logs-linux-${{ join(matrix.*, '-') }}
path: logs.tgz

build-clang-analyze:
needs: build-dpdk
env:
Expand Down Expand Up @@ -388,147 +187,10 @@ jobs:
- name: build
run: ./.ci/linux-build.sh

build-oss-fuzz:
name: build oss-fuzz fuzzers
runs-on: ubuntu-22.04
timeout-minutes: 30

steps:
- name: Checkout OVS
uses: actions/checkout@v4

- name: Checkout oss-fuzz
uses: actions/checkout@v4
with:
repository: google/oss-fuzz
path: oss-fuzz

- name: Build oss-fuzz image
run: |
cd oss-fuzz
python infra/helper.py build_image openvswitch --no-pull
- name: Build oss-fuzz fuzzers
run: |
cd oss-fuzz
python infra/helper.py build_fuzzers --sanitizer address \
--engine afl --architecture x86_64 openvswitch $GITHUB_WORKSPACE
build-osx:
env:
CC: clang
OPTS: --disable-ssl

name: osx clang --disable-ssl
runs-on: macos-latest
timeout-minutes: 30

strategy:
fail-fast: false

steps:
- name: checkout
uses: actions/checkout@v4
- name: update PATH
run: |
echo "$HOME/bin" >> $GITHUB_PATH
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: set up python
uses: actions/setup-python@v5
with:
python-version: ${{ env.python_default }}
- name: install dependencies
run: brew install automake libtool
- name: prepare
run: ./.ci/osx-prepare.sh
- name: build
run: ./.ci/osx-build.sh
- name: upload logs on failure
if: failure()
uses: actions/upload-artifact@v4
with:
name: logs-osx-clang---disable-ssl
path: config.log

build-linux-deb:
env:
deb_dependencies: |
linux-headers-$(uname -r) build-essential fakeroot devscripts equivs
DEB_PACKAGE: yes
DPDK: ${{ matrix.dpdk }}

name: linux deb ${{ matrix.dpdk }} dpdk
runs-on: ubuntu-22.04
timeout-minutes: 30

strategy:
fail-fast: false
matrix:
include:
- dpdk: no

steps:
- name: checkout
uses: actions/checkout@v4

- name: update PATH
run: |
echo "$HOME/bin" >> $GITHUB_PATH
echo "$HOME/.local/bin" >> $GITHUB_PATH
- name: update APT cache
run: sudo apt update || true
- name: install dependencies for debian packages
run: sudo apt install -y ${{ env.deb_dependencies }}
- name: install dpdk-dev
if: matrix.dpdk != 'no'
run: sudo apt install -y libdpdk-dev

- name: prepare
run: ./.ci/linux-prepare.sh

- name: build
run: ./.ci/linux-build.sh

- name: upload deb packages
uses: actions/upload-artifact@v4
with:
name: deb-packages-${{ matrix.dpdk }}-dpdk
path: '/home/runner/work/ovs/*.deb'

build-linux-rpm:
name: linux rpm fedora
runs-on: ubuntu-latest
container: fedora:39
timeout-minutes: 30

strategy:
fail-fast: false

steps:
- name: checkout
uses: actions/checkout@v4
- name: install dependencies
run: |
dnf install -y rpm-build dnf-plugins-core
sed -e 's/@VERSION@/0.0.1/' rhel/openvswitch-fedora.spec.in \
> /tmp/ovs.spec
dnf builddep -y /tmp/ovs.spec
rm -f /tmp/ovs.spec
- name: configure
run: ./boot.sh && ./configure

- name: build
run: make rpm-fedora

- name: install
run: dnf install -y rpm/rpmbuild/RPMS/*/*.rpm

- name: upload rpm packages
- name: upload sarif files
uses: actions/upload-artifact@v4
with:
name: rpm-packages
name: sarif-files
path: |
rpm/rpmbuild/SRPMS/*.rpm
rpm/rpmbuild/RPMS/*/*.rpm
base-clang-analyzer-results
clang-analyzer-results

0 comments on commit eb212a6

Please sign in to comment.