This is an automated email from the ASF dual-hosted git repository.
shaojunwang pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/incubator-teaclave-java-tee-sdk.git
The following commit(s) were added to refs/heads/master by this push:
new 7528755 add-github-cicd
7528755 is described below
commit 75287559c0c69d650048918b5b131597cc5bea59
Author: shaojunwang <[email protected]>
AuthorDate: Mon Feb 6 17:40:02 2023 +0800
add-github-cicd
---
.github/workflows/ci.yml | 31 +++++++++++++++++++++++++++++++
README.md | 2 +-
build.sh | 14 +++++++++++++-
tools/cicd/make.sh | 28 ++++++++++++++--------------
4 files changed, 59 insertions(+), 16 deletions(-)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
new file mode 100644
index 0000000..ee29df1
--- /dev/null
+++ b/.github/workflows/ci.yml
@@ -0,0 +1,31 @@
+name: Apache Teaclave Java Tee SDK CI
+run-name: ${{ github.actor }} is testing out GitHub Actions 🚀
+on: [push, pull_request, workflow_dispatch]
+defaults:
+ run:
+ shell: bash
+
+jobs:
+ Explore-GitHub-Actions:
+ runs-on: [self-hosted, linux]
+ steps:
+ - run: echo "🎉 The job was automatically triggered by a ${{
github.event_name }} event."
+ - run: echo "🐧 This job is now running on a ${{ runner.os }} server
hosted by GitHub!"
+ - run: echo "🔎 The name of your branch is ${{ github.ref }} and your
repository is ${{ github.repository }}."
+ - name: Check out repository code
+ uses: actions/checkout@v3
+ - run: echo "💡 The ${{ github.repository }} repository has been cloned
to the runner."
+ - run: echo "🖥️ The workflow is now ready to test your code on the
runner."
+ - name: List files in the repository
+ run: ls ${{ github.workspace }}
+ - name: Build JavaEnclave
+ run: sudo ${{ github.workspace }}/tools/cicd/make.sh build
+ - name: Release JavaEnclave
+ run: sudo ${{ github.workspace }}/tools/cicd/make.sh release
+ - name: Test JavaEnclave
+ run: sudo ${{ github.workspace }}/tools/cicd/make.sh test
+ - name: Run JavaEnclave Samples
+ run: sudo ${{ github.workspace }}/tools/cicd/make.sh samples
+ - name: Run JavaEnclave Benchmark
+ run: sudo ${{ github.workspace }}/tools/cicd/make.sh benchmark
+ - run: echo "🍏 This job's status is ${{ job.status }}."
\ No newline at end of file
diff --git a/README.md b/README.md
index ddd8ee4..18c5b47 100644
--- a/README.md
+++ b/README.md
@@ -206,7 +206,7 @@ In essence, it's an SPI mechanism between host and enclave
parts.
`MOCK_IN_SVM` mode in Teaclave Java TEE SDK is also a simulated mode, it
doesn't need SGX hardware support. Compare with `MOCK_IN_JVM` mode, the enclave
submodule
will be compiled into a native image, and the host submodule run in a JVM
environment. host part will load, create and invoke service defined in enclave
by JNI native call.
-### TEE_SDK mode
+#### TEE_SDK mode
`TEE_SDK` mode is a hardware mode, it must run on the platform with SGX2
hardware support. Compare with `MOCK_IN_SVM` mode, the enclave submodule also
will be compiled into a native image, but it will be loaded and run in sgx
enclave environment. The host part will run in a JVM environment, and both the
host and enclave module will run in one process.
diff --git a/build.sh b/build.sh
index fe7593b..ca22576 100755
--- a/build.sh
+++ b/build.sh
@@ -40,17 +40,29 @@ if [ ! "$STAGE" -o "build" = "$STAGE" ]; then
# Install JavaEnclave archetype
pushd "${WORKDIR}"/archetype && mvn clean install && popd
elif [ ! "$STAGE" -o "test" = "$STAGE" ]; then
+ mkdir -p /dev/sgx
+ ln -s /dev/sgx_enclave /dev/sgx/enclave
+ ln -s /dev/sgx_provision /dev/sgx/provision
# Test unit test cases in JavaEnclave
pushd "${WORKDIR}"/test && ./run.sh && popd
elif [ ! "$STAGE" -o "coverage" = "$STAGE" ]; then
+ mkdir -p /dev/sgx
+ ln -s /dev/sgx_enclave /dev/sgx/enclave
+ ln -s /dev/sgx_provision /dev/sgx/provision
# collect and analysis JavaEnclave ut coverage
pushd "${WORKDIR}"/coverage && ./run.sh "${WORKDIR}"/test && popd
elif [ ! "$STAGE" -o "samples" = "$STAGE" ]; then
+ mkdir -p /dev/sgx
+ ln -s /dev/sgx_enclave /dev/sgx/enclave
+ ln -s /dev/sgx_provision /dev/sgx/provision
# samples in JavaEnclave
pushd "${WORKDIR}"/samples/helloworld && ./run.sh && popd
pushd "${WORKDIR}"/samples/springboot && ./run.sh && popd
elif [ ! "$STAGE" -o "benchmark" = "$STAGE" ]; then
+ mkdir -p /dev/sgx
+ ln -s /dev/sgx_enclave /dev/sgx/enclave
+ ln -s /dev/sgx_provision /dev/sgx/provision
# benchmark in JavaEnclave
pushd "${WORKDIR}"/benchmark/guomi && ./run.sh && popd
pushd "${WORKDIR}"/benchmark/string && ./run.sh && popd
-fi
\ No newline at end of file
+fi
diff --git a/tools/cicd/make.sh b/tools/cicd/make.sh
index e33d229..d5cd9da 100755
--- a/tools/cicd/make.sh
+++ b/tools/cicd/make.sh
@@ -62,8 +62,8 @@ function build_javaenclave() {
docker run -i --rm --privileged --network host \
-w "${WORKDIR}" \
-v "${HOME}"/.m2:/root/.m2 -v "${WORKDIR}":"${WORKDIR}" \
- -v /dev/sgx_enclave:/dev/sgx/enclave \
- -v /dev/sgx_provision:/dev/sgx/provision \
+ -v /dev/sgx_enclave:/dev/sgx_enclave \
+ -v /dev/sgx_provision:/dev/sgx_provision \
${BASE_IMAGE}:${BASE_TAG} /bin/bash build.sh $1
}
@@ -87,8 +87,8 @@ function test_javaenclave() {
-w "${WORKDIR}" \
-v "${HOME}"/.m2:/root/.m2 -v "${WORKDIR}":"${WORKDIR}" \
-e PCCS_URL=${PCCS_URL} \
- -v /dev/sgx_enclave:/dev/sgx/enclave \
- -v /dev/sgx_provision:/dev/sgx/provision \
+ -v /dev/sgx_enclave:/dev/sgx_enclave \
+ -v /dev/sgx_provision:/dev/sgx_provision \
${RELEASE_IMAGE}:${RELEASE_TAG} /bin/bash build.sh $1
}
@@ -101,8 +101,8 @@ function collect_javaenclave_coverage() {
-w "${WORKDIR}" \
-v "${HOME}"/.m2:/root/.m2 -v "${WORKDIR}":"${WORKDIR}" \
-e PCCS_URL=${PCCS_URL} \
- -v /dev/sgx_enclave:/dev/sgx/enclave \
- -v /dev/sgx_provision:/dev/sgx/provision \
+ -v /dev/sgx_enclave:/dev/sgx_enclave \
+ -v /dev/sgx_provision:/dev/sgx_provision \
${RELEASE_IMAGE}:${RELEASE_TAG} /bin/bash build.sh $1
}
@@ -115,8 +115,8 @@ function samples_javaenclave() {
-w "${WORKDIR}" \
-v "${HOME}"/.m2:/root/.m2 -v "${WORKDIR}":"${WORKDIR}" \
-e PCCS_URL=${PCCS_URL} \
- -v /dev/sgx_enclave:/dev/sgx/enclave \
- -v /dev/sgx_provision:/dev/sgx/provision \
+ -v /dev/sgx_enclave:/dev/sgx_enclave \
+ -v /dev/sgx_provision:/dev/sgx_provision \
${RELEASE_IMAGE}:${RELEASE_TAG} /bin/bash build.sh $1
}
@@ -129,8 +129,8 @@ function benchmark_javaenclave() {
-w "${WORKDIR}" \
-v "${HOME}"/.m2:/root/.m2 -v "${WORKDIR}":"${WORKDIR}" \
-e PCCS_URL=${PCCS_URL} \
- -v /dev/sgx_enclave:/dev/sgx/enclave \
- -v /dev/sgx_provision:/dev/sgx/provision \
+ -v /dev/sgx_enclave:/dev/sgx_enclave \
+ -v /dev/sgx_provision:/dev/sgx_provision \
${RELEASE_IMAGE}:${RELEASE_TAG} /bin/bash build.sh $1
}
@@ -172,8 +172,8 @@ function develop_javaenclave() {
-w "${WORKDIR}" \
-v "${HOME}"/.m2:/root/.m2 -v "${WORKDIR}":"${WORKDIR}" \
-e PCCS_URL=${PCCS_URL} \
- -v /dev/sgx_enclave:/dev/sgx/enclave \
- -v /dev/sgx_provision:/dev/sgx/provision \
+ -v /dev/sgx_enclave:/dev/sgx_enclave \
+ -v /dev/sgx_provision:/dev/sgx_provision \
${BASE_IMAGE}:${BASE_TAG} /bin/bash
}
@@ -185,8 +185,8 @@ function develop_application() {
-w "${WORKDIR}" \
-v "${HOME}"/.m2:/root/.m2 -v "${WORKDIR}":"${WORKDIR}" \
-e PCCS_URL=${PCCS_URL} \
- -v /dev/sgx_enclave:/dev/sgx/enclave \
- -v /dev/sgx_provision:/dev/sgx/provision \
+ -v /dev/sgx_enclave:/dev/sgx_enclave \
+ -v /dev/sgx_provision:/dev/sgx_provision \
${RELEASE_IMAGE}:${RELEASE_TAG} /bin/bash
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]