aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authorJán Jančár2024-03-25 20:13:02 +0100
committerGitHub2024-03-25 20:13:02 +0100
commitdc7bb975e1c230f1f0a1937c454b2b90817d18e9 (patch)
tree8b4e3437e489894afcead9a6466050f3611cb38d /.github/workflows
parent64b95fa059295e1dc23371c849f2302c1c18f5b4 (diff)
parent591deaece718b7821385ff0069b44adac4e1baf3 (diff)
downloadECTester-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.yml99
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