From 61d84fa0e64ca4edbaf8636ed329b2b16968c3aa Mon Sep 17 00:00:00 2001 From: Michael Chernov <4ernovm@gmail.com> Date: Fri, 23 Feb 2024 12:54:06 +0200 Subject: [PATCH] Check downloaded artifacts structure --- .github/workflows/soot.yml | 98 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100644 .github/workflows/soot.yml diff --git a/.github/workflows/soot.yml b/.github/workflows/soot.yml new file mode 100644 index 00000000..d8f5b09a --- /dev/null +++ b/.github/workflows/soot.yml @@ -0,0 +1,98 @@ +name: Release + +on: + pull_request: + +permissions: + contents: write + +jobs: + soot-wrapper-test: + runs-on: ubuntu-latest + strategy: + matrix: + java-version: [ 11, 17, 21 ] + steps: + - uses: actions/checkout@v4 + with: + repository: 'debricked/soot-wrapper' + + - name: Calculate checksum + id: calc-checksum + run: | + TAG=$(curl -s https://api.github.com/repos/${{ github.repository }}/releases/latest | jq -r '.tag_name') + curl -LJO https://github.com/${{ github.repository }}/releases/download/${TAG}/soot-wrapper-rev-hash.txt + + echo "release_tag=$TAG" >> $GITHUB_OUTPUT + echo "hash=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT + if [ ! -f soot-wrapper-rev-hash.txt ]; then + touch soot-wrapper-rev-hash.txt + fi + echo "prev_hash=$(cat soot-wrapper-rev-hash.txt)" >> $GITHUB_OUTPUT + + - name: Pull JAR from previous release if already built +# if: steps.calc-checksum.outputs.hash == steps.calc-checksum.outputs.prev_hash + run: | + curl -LJO https://github.com/${{ github.repository }}/releases/download/${{ steps.calc-checksum.outputs.release_tag }}/soot-wrapper-${{ matrix.java-version }}.jar + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Upload JAR from previous release + if: steps.calc-checksum.outputs.hash == steps.calc-checksum.outputs.prev_hash + uses: actions/upload-artifact@v4 + with: + name: soot-wrapper-${{ matrix.java-version }}.jar + path: soot-wrapper-${{ matrix.java-version }}.jar + + - name: Set up JDK ${{ matrix.java-version }} + if: steps.calc-checksum.outputs.hash != steps.calc-checksum.outputs.prev_hash + uses: actions/setup-java@v4 + with: + java-version: ${{ matrix.java-version }} + distribution: 'adopt' + + - name: Build with Maven + if: steps.calc-checksum.outputs.hash != steps.calc-checksum.outputs.prev_hash + run: | + cd java/common/ + mvn clean package -X -DskipTests + + - name: Upload generated JAR + if: steps.calc-checksum.outputs.hash != steps.calc-checksum.outputs.prev_hash + uses: actions/upload-artifact@v4 + with: + name: soot-wrapper-${{ matrix.java-version }}.jar + path: java/common/target/*.jar + + - name: Store soot-wrapper revision hash + if: steps.calc-checksum.outputs.hash != steps.calc-checksum.outputs.prev_hash + run: | + echo ${{ steps.calc-checksum.outputs.hash }} > soot-wrapper-rev-hash.txt + + - name: Upload file containing soot-wrapper revision hash + if: steps.calc-checksum.outputs.hash != steps.calc-checksum.outputs.prev_hash + uses: actions/upload-artifact@v4 + with: + name: soot-wrapper-rev-hash.txt + path: soot-wrapper-rev-hash.txt + overwrite: 'true' + + goreleaser-test: + runs-on: ubuntu-latest + needs: soot-wrapper-test + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - run: git fetch --force --tags + + - name: Download JARs + uses: actions/download-artifact@v4 + + - name: Ensure files are in place + run: | + ls -la soot-wrapper-11.jar + ls -la soot-wrapper-17.jar + ls -la soot-wrapper-21.jar + ls -la soot-wrapper-rev-hash.txt