• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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