diff options
| author | Ján Jančár | 2024-03-25 20:13:02 +0100 |
|---|---|---|
| committer | GitHub | 2024-03-25 20:13:02 +0100 |
| commit | dc7bb975e1c230f1f0a1937c454b2b90817d18e9 (patch) | |
| tree | 8b4e3437e489894afcead9a6466050f3611cb38d /.github/workflows | |
| parent | 64b95fa059295e1dc23371c849f2302c1c18f5b4 (diff) | |
| parent | 591deaece718b7821385ff0069b44adac4e1baf3 (diff) | |
| download | ECTester-dc7bb975e1c230f1f0a1937c454b2b90817d18e9.tar.gz ECTester-dc7bb975e1c230f1f0a1937c454b2b90817d18e9.tar.zst ECTester-dc7bb975e1c230f1f0a1937c454b2b90817d18e9.zip | |
Merge pull request #20 from crocs-muni/feat/gradle
Move to gradle build
Diffstat (limited to '.github/workflows')
| -rw-r--r-- | .github/workflows/build.yml | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..eb4b902 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,99 @@ +name: Build + +on: + push: + branches: [ "master" ] + pull_request: + branches: [ "master" ] + +jobs: + build: + + runs-on: ubuntu-latest + permissions: + contents: read + + strategy: + matrix: + java: [ "8", "11", "17", "21" ] + env: + JAVA_VERSION: ${{ matrix.java }} + name: Build Java ${{ matrix.java }} + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + + - name: Set up JDK + uses: actions/setup-java@v4 + with: + java-version: ${{ matrix.java }} + distribution: "temurin" + + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 + + - name: Setup libraries + run: | + sudo apt update + sudo apt install libmbedtls-dev libtomcrypt-dev libtommath-dev libssl-dev libcrypto++-dev libgcrypt20-dev nettle-dev libbotan-2-dev libwolfssl-dev nasm + echo "BORINGSSL_VERSION=$(git submodule status ext/boringssl | cut -f2 -d' ')" >> $GITHUB_ENV + echo "LIBRESSL_VERSION=$(git submodule status ext/libressl | cut -f2 -d' ')" >> $GITHUB_ENV + echo "IPPCP_VERSION=$(git submodule status ext/ipp-crypto | cut -f2 -d' ')" >> $GITHUB_ENV + + - name: Build applets + run: if [ $JAVA_VERSION != 21 ]; then ./gradlew applet:buildJavaCard; fi + + - name: Build reader + run: ./gradlew reader:uberJar + + - name: Cache libs + uses: actions/cache@v4 + id: cache-libs + with: + key: libs-${{ env.BORINGSSL_VERSION }}-${{ env.LIBRESSL_VERSION }}-${{ env.IPPCP_VERSION }} + path: | + ext/boringssl/build/crypto/libcrypto.so + ext/libressl/build/crypto/libcrypto.so + ext/ipp-crypto/build/.build/RELEASE/lib/libippcp.so + + - name: Build libs + if: steps.cache-libs.outputs.cache-hit != 'true' + run: | + cd ext/boringssl + cmake -DBUILD_SHARED_LIBS=1 -Bbuild + cd build + make -j4 crypto + cd ../../.. + cd ext/libressl + ./autogen.sh + cmake -DBUILD_SHARED_LIBS=ON -Bbuild + cd build + make -j4 crypto + cd ../../.. + cd ext/ipp-crypto + CC=clang CXX=clang++ cmake CMakeLists.txt -Bbuild -DARCH=intel64 + cd build + make -j4 + cd ../../.. + + - name: Build standalone + run: | + ./gradlew standalone:libs || true + ./gradlew standalone:uberJar + + # ffs: https://github.com/adoptium/adoptium-support/issues/485 !!! + - name: List libraries + run: env LD_LIBRARY_PATH="/usr/lib/x86_64-linux-gnu/" ./gradlew standalone:run --args="list-libs" + + - name: Test + run: ./gradlew test + + - name: Upload build artifacts + uses: actions/upload-artifact@v4 + with: + name: built-${{ matrix.java }} + path: | + applet/build/javacard/*.cap + reader/build/libs/ECTesterReader.jar + standalone/build/libs/ECTesterStandalone.jar
\ No newline at end of file |
