From b26f13a27bb34166b87a1c910a421f90cbd0e53b Mon Sep 17 00:00:00 2001 From: Mike Hunhoff Date: Fri, 2 Feb 2024 14:38:13 -0700 Subject: [PATCH] ci: add build workflow (#91) --- .github/workflows/build.yml | 52 +++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 .github/workflows/build.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..8eecce1 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,52 @@ +name: build + +on: + release: + types: [published] + +jobs: + + release: + runs-on: ubuntu-latest + strategy: + fail-fast: true + matrix: + include: + - jep-jar-release-url: "https://github.com/ninia/jep/releases/download/v4.2.0/jep-4.2.0.jar" + ghidra-release-url: "https://github.com/NationalSecurityAgency/ghidra/releases/download/Ghidra_11.0_build/ghidra_11.0_PUBLIC_20231222.zip" + steps: + - name: Checkout Ghidrathon + uses: actions/checkout@v4 + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: "temurin" + java-version: "17" + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 + with: + gradle-version: "7.3" + - name: Configure temp folder + run: mkdir ../tmp + - name: Download Ghidra + run: | + wget ${{ matrix.ghidra-release-url }} -O ../tmp/ghidra.zip + unzip ../tmp/ghidra.zip -d ../tmp/ghidra + mv ../tmp/ghidra/$(ls ../tmp/ghidra) ../tmp/ghidra/ghidra_PUBLIC + - name: Download Jep + run: wget ${{ matrix.jep-jar-release-url }} -O ./lib/jep-4.2.0.jar + - name: Set zip name + run: echo "zip_name=Ghidrathon-${GITHUB_REF#refs/tags/}.zip" >> $GITHUB_ENV + - name: Build Ghidrathon + run: gradle -PGHIDRA_INSTALL_DIR=${{ github.workspace }}/../tmp/ghidra/ghidra_PUBLIC + - name: Configure and zip + run: | + mv ./dist/$(ls ./dist) ./dist/${{ env.zip_name }} + cp ./util/* ./dist + (cd ./dist && zip -r ../${{ env.zip_name }} .) + - name: Upload ${{ env.zip_name }} to GH Release + uses: svenstaro/upload-release-action@2728235f7dc9ff598bd86ce3c274b74f802d2208 # v2 + with: + repo_token: ${{ secrets.GITHUB_TOKEN}} + file: ${{ env.zip_name }} + tag: ${{ github.ref }}