diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 92c1c33723b49..4d1a0fac132a7 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,4 +1,4 @@ -name: Build ARM user +name: Build target user on: [pull_request, workflow_dispatch] @@ -6,19 +6,53 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 + - name: Set up Python 3.x + uses: actions/setup-python@v4 + with: + python-version: '3.x' + - name: Copy source.list file to include deb-src + run: | + sudo cp /etc/apt/sources.list /etc/apt/sources.list.d/tmp.list + sudo sed -i "s/# deb-src/deb-src/g" /etc/apt/sources.list.d/tmp.list - name: Install deps run: | - apt --no-install-recommends -y build-dep qemu - apt install autoconf libtool protobuf-c-compiler + sudo apt-get update + sudo apt-get --no-install-recommends -y build-dep qemu + sudo apt-get install -y autoconf libtool protobuf-c-compiler + pip3 install --user ninja + - name: Install OCaml + uses: ocaml/setup-ocaml@v2 + with: + ocaml-compiler: 4.14.x + dune-cache: true + opam-disable-sandboxing: true + - name: Install piqi + run: | opam install piqi - cs /root - git clone https://github.com/BinaryAnalysisPlatform/bap-frames.git - git clone git@github.com:BinaryAnalysisPlatform/qemu.git - - name: Build for ARM + - name: Clone qemu and bap-frames + run: | + git clone --depth 1 http://github.com/BinaryAnalysisPlatform/bap-frames.git + git clone --depth 1 http://github.com/BinaryAnalysisPlatform/qemu.git + - name: Build target run: | cd qemu - ./configure --prefix=$HOME --with-tracewrap="/root/bap-frames" --target-list=arm-linux-user - ninja -C build - ninja -C build install + branch=$(git rev-parse --abbrev-ref HEAD) + echo "$branch" + if [ "$branch" == "tracewrap-8.1" ]; then + ./configure --prefix=$HOME --target-list=arm-linux-user + ninja -C build + exit 0 + fi + echo "NOTE:" + echo "Please update this workflow so it builds the target you are working on." + echo "See the commented lines for an example." + exit 1 + # Don't forget to checkout your tracewrap branch under "- uses" above! + # + # Build commands: + # cd qemu + # ./configure --prefix=$HOME --with-tracewrap="/$HOME/bap-frames" --target-list=arm-linux-user + # ninja -C build + # ninja -C build install