-
Notifications
You must be signed in to change notification settings - Fork 3
/
.gitlab-ci.yml
37 lines (34 loc) · 1.26 KB
/
.gitlab-ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
stages:
- build-and-test
default:
image: docker.grammatech.com/rewriting/gtirb-ghidra-plugin
tags: ["shared"]
build-and-test:
stage: build-and-test
script:
- echo "Building plugin..."
- apt-get update -y && apt-get install -y pip && pip install ddisasm
# Clone GTIRB repo so you can get the Java API
- cd ${CI_PROJECT_DIR}
- git clone https://git.grammatech.com/rewriting/gtirb.git
# Run the protocol compiler to generate Java classes from proto files
- cd gtirb
# Run cmake to generate Java class with version information
- mkdir build
- cd build
- cmake ../ -DGTIRB_CXX_API=OFF -DGTIRB_PY_API=OFF -DGTIRB_CL_API=OFF -DGTIRB_JAVA_API=ON
- make
# Copy in GTIRB Java API and protobuf Java lib
- cd ${CI_PROJECT_DIR}/Gtirb
- cp ${CI_PROJECT_DIR}/gtirb/build/java/target/*.jar lib/
# Build the plugin
- gradle
# Install in Ghidra
- rm -rf ${GHIDRA_INSTALL_DIR}/Ghidra/Extensions/Gtirb
- unzip -d ${GHIDRA_INSTALL_DIR}/Ghidra/Extensions dist/*.zip
# Run test scripts using plugin in headless mode
- cd ${CI_PROJECT_DIR}/tests
- ./test-import hello_x64.elf
- ./test-import hello_ia32.elf
#- if [ -n "$INTERNAL_APT_REPO" ]; then ./test-import hello_arm.elf; fi
#- if [ -n "$INTERNAL_APT_REPO" ]; then ./test-import hello_ppc.elf; fi