1# Configuration file for https://circleci.com/ 2 3version: 2 4 5jobs: 6 build: 7 docker: 8 # Use a Python image from https://hub.docker.com/r/circleci/python/tags/ 9 - image: circleci/python:3.6 10 11 steps: 12 - checkout 13 14 # Install dependencies 15 - run: sudo apt-get update -qq 16 - run: sudo apt-get install -qq bison clang clang-tools flex gawk gettext libaudit-dev libcap-dev libcap-ng-dev libcunit1-dev libdbus-glib-1-dev libpcre2-dev python3-dev python-dev ruby-dev swig xmlto 17 18 - run: 19 name: Setup environment variables 20 command: | 21 echo 'export DESTDIR=$HOME/destdir' >> "$BASH_ENV" 22 echo 'export IS_CIRCLE_CI=1' >> "$BASH_ENV" 23 24 # Download and install refpolicy headers for sepolgen tests 25 - run: 26 name: Download refpolicy Makefile 27 command: | 28 curl --location --retry 10 -o refpolicy.tar.bz2 https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_2_20180701/refpolicy-2.20180701.tar.bz2 29 tar -xvjf refpolicy.tar.bz2 30 sed -e "s,^PREFIX :=.*,PREFIX := $DESTDIR/usr," -i refpolicy/support/Makefile.devel 31 sudo make -C refpolicy install-headers 32 sudo mkdir -p /etc/selinux 33 echo 'SELINUXTYPE=refpolicy' | sudo tee /etc/selinux/config 34 echo 'SELINUX_DEVEL_PATH = /usr/share/selinux/refpolicy' | sudo tee /etc/selinux/sepolgen.conf 35 sed -e "s,\"\(/usr/bin/[cs]\),\"$DESTDIR\1," -i python/sepolgen/src/sepolgen/module.py 36 37 # Run clang's scan-build and store the result as artifacts 38 - run: ./scripts/run-scan-build 39 - store_artifacts: 40 path: scripts/output-scan-build 41 destination: output-scan-build 42