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 libpcre3-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 23 # Download and install refpolicy headers for sepolgen tests 24 - run: 25 name: Download refpolicy Makefile 26 command: | 27 curl --location --retry 10 -o refpolicy.tar.bz2 https://github.com/SELinuxProject/refpolicy/releases/download/RELEASE_2_20180701/refpolicy-2.20180701.tar.bz2 28 tar -xvjf refpolicy.tar.bz2 29 sed -e "s,^PREFIX :=.*,PREFIX := $DESTDIR/usr," -i refpolicy/support/Makefile.devel 30 sudo make -C refpolicy install-headers 31 sudo mkdir -p /etc/selinux 32 echo 'SELINUXTYPE=refpolicy' | sudo tee /etc/selinux/config 33 echo 'SELINUX_DEVEL_PATH = /usr/share/selinux/refpolicy' | sudo tee /etc/selinux/sepolgen.conf 34 sed -e "s,\"\(/usr/bin/[cs]\),\"$DESTDIR\1," -i python/sepolgen/src/sepolgen/module.py 35 36 # Run clang's scan-build and store the result as artifacts 37 - run: ./scripts/run-scan-build 38 - store_artifacts: 39 path: scripts/output-scan-build 40 destination: output-scan-build 41