You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@teaclave.apache.org by sh...@apache.org on 2023/02/16 05:42:09 UTC

[incubator-teaclave-java-tee-sdk] branch master updated: support anolisos8.6

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 db9394a  support anolisos8.6
db9394a is described below

commit db9394a773e45dd4a6eb495028fb974b247590a5
Author: shaojunwang <sh...@apache.org>
AuthorDate: Thu Feb 9 16:51:52 2023 +0800

    support anolisos8.6
---
 .github/workflows/ci.yml                           |  26 +++-
 README.md                                          |   3 +-
 .../src/main/resources/archetype-resources/pom.xml |   2 +-
 .../benchmark/guomi/host/GuoMiBenchMark.java       |  14 +-
 benchmark/guomi/pom.xml                            |   2 +-
 benchmark/guomi/run.sh                             |   4 +-
 .../benchmark/string/host/StringBenchMark.java     |  12 +-
 benchmark/string/pom.xml                           |   2 +-
 benchmark/string/run.sh                            |   4 +-
 coverage/run.sh                                    |   4 +-
 .../javasdk/samples/helloworld/host/Main.java      |   3 +-
 samples/helloworld/pom.xml                         |   2 +-
 samples/helloworld/run.sh                          |   2 +-
 samples/springboot/pom.xml                         |   2 +-
 samples/springboot/run.sh                          |   2 +-
 sdk/pom.xml                                        |   2 +-
 .../teaclave/javasdk/test/host/TestEnclaveAES.java |   3 +-
 .../javasdk/test/host/TestEnclaveConcurrency.java  |   2 -
 .../javasdk/test/host/TestEnclaveException.java    |   1 -
 .../javasdk/test/host/TestEnclaveInfo.java         |   9 --
 .../javasdk/test/host/TestEnclaveInfoMXBean.java   |  13 +-
 .../javasdk/test/host/TestEnclaveMetricTrace.java  |   5 +-
 .../teaclave/javasdk/test/host/TestEnclaveRSA.java |   3 +-
 .../javasdk/test/host/TestEnclaveReflection.java   |   2 +-
 .../teaclave/javasdk/test/host/TestEnclaveSHA.java |   3 +-
 .../javasdk/test/host/TestEnclaveServiceGC.java    |   2 +-
 .../teaclave/javasdk/test/host/TestHelloWorld.java |   2 +-
 .../javasdk/test/host/TestRemoteAttestation.java   |   2 +-
 .../teaclave/javasdk/test/host/TestSMEnclave.java  |  12 +-
 test/pom.xml                                       |   2 +-
 test/run.sh                                        |   2 +-
 tools/cicd/anolis-8.6/dockerfile_build             |  40 ++++++
 tools/cicd/{ => anolis-8.6}/dockerfile_release     |   2 +-
 .../{ => anolis-8.6}/graalvm/build_graalvm_jdk.sh  |   2 +-
 tools/cicd/{teesdk => anolis-8.6/graalvm}/make.sh  |   5 +-
 tools/cicd/{ => anolis-8.6}/make.sh                | 152 ++++++++++-----------
 .../cicd/{ => anolis-8.6}/teesdk/build_tee_sdk.sh  |   8 +-
 tools/cicd/{ => anolis-8.6}/teesdk/make.sh         |   4 +-
 .../dockerfile_build}                              |   2 +-
 tools/cicd/{ => ubuntu-18.04}/dockerfile_release   |   2 +-
 .../graalvm/build_graalvm_jdk.sh                   |   0
 tools/cicd/{ => ubuntu-18.04}/graalvm/make.sh      |   1 +
 tools/cicd/{ => ubuntu-18.04}/make.sh              | 147 ++++++++++----------
 .../{ => ubuntu-18.04}/teesdk/build_tee_sdk.sh     |   2 +-
 tools/cicd/{ => ubuntu-18.04}/teesdk/make.sh       |   2 +-
 45 files changed, 261 insertions(+), 257 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index ee29df1..98990b7 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -15,17 +15,31 @@ jobs:
       - 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."
+      - run: echo "🖥️ The workflow is now ready to test your code on the runner in ubuntu18.04 container."
       - name: List files in the repository
         run: ls ${{ github.workspace }}
       - name: Build JavaEnclave
-        run: sudo ${{ github.workspace }}/tools/cicd/make.sh build
+        run: ${{ github.workspace }}/tools/cicd/ubuntu-18.04/make.sh build
       - name: Release JavaEnclave
-        run: sudo ${{ github.workspace }}/tools/cicd/make.sh release
+        run: ${{ github.workspace }}/tools/cicd/ubuntu-18.04/make.sh release
       - name: Test JavaEnclave
-        run: sudo ${{ github.workspace }}/tools/cicd/make.sh test
+        run: ${{ github.workspace }}/tools/cicd/ubuntu-18.04/make.sh test
       - name: Run JavaEnclave Samples
-        run: sudo ${{ github.workspace }}/tools/cicd/make.sh samples
+        run: ${{ github.workspace }}/tools/cicd/ubuntu-18.04/make.sh samples
       - name: Run JavaEnclave Benchmark
-        run: sudo ${{ github.workspace }}/tools/cicd/make.sh benchmark
+        run: ${{ github.workspace }}/tools/cicd/ubuntu-18.04/make.sh benchmark
+      - run: echo "🍏 This job's status is ${{ job.status }}."
+      - run: echo "🖥️ The workflow is now ready to test your code on the runner in anolis8.6 container."
+      - name: List files in the repository
+        run: ls ${{ github.workspace }}
+      - name: Build JavaEnclave
+        run: ${{ github.workspace }}/tools/cicd/anolis-8.6/make.sh build
+      - name: Release JavaEnclave
+        run: ${{ github.workspace }}/tools/cicd/anolis-8.6/make.sh release
+      - name: Test JavaEnclave
+        run: ${{ github.workspace }}/tools/cicd/anolis-8.6/make.sh test
+      - name: Run JavaEnclave Samples
+        run: ${{ github.workspace }}/tools/cicd/anolis-8.6/make.sh samples
+      - name: Run JavaEnclave Benchmark
+        run: ${{ github.workspace }}/tools/cicd/anolis-8.6/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 18c5b47..d7b0b4b 100644
--- a/README.md
+++ b/README.md
@@ -173,8 +173,7 @@ public class Main {
         EnclaveType[] enclaveTypes = {
                 EnclaveType.MOCK_IN_JVM,
                 EnclaveType.MOCK_IN_SVM,
-                EnclaveType.TEE_SDK,
-                EnclaveType.EMBEDDED_LIB_OS};
+                EnclaveType.TEE_SDK};
 
         for (EnclaveType enclaveType : enclaveTypes) {
             Enclave enclave = EnclaveFactory.create(enclaveType);
diff --git a/archetype/src/main/resources/archetype-resources/pom.xml b/archetype/src/main/resources/archetype-resources/pom.xml
index c0acba7..b421149 100644
--- a/archetype/src/main/resources/archetype-resources/pom.xml
+++ b/archetype/src/main/resources/archetype-resources/pom.xml
@@ -10,7 +10,7 @@
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.target>11</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</org.apache.teaclave.javasdk.platform>
+        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK</org.apache.teaclave.javasdk.platform>
     </properties>
     <dependencyManagement>
         <dependencies>
diff --git a/benchmark/guomi/host/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/host/GuoMiBenchMark.java b/benchmark/guomi/host/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/host/GuoMiBenchMark.java
index 825a042..c5fe074 100644
--- a/benchmark/guomi/host/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/host/GuoMiBenchMark.java
+++ b/benchmark/guomi/host/src/main/java/org/apache/teaclave/javasdk/benchmark/guomi/host/GuoMiBenchMark.java
@@ -42,7 +42,7 @@ public class GuoMiBenchMark {
 
     public final String sm3Context = "Hello World!";
 
-    @Param(value = {"MOCK_IN_JVM", "MOCK_IN_SVM", "TEE_SDK", "EMBEDDED_LIB_OS"})
+    @Param(value = {"MOCK_IN_JVM", "MOCK_IN_SVM", "TEE_SDK"})
     private String enclaveServiceInstance;
     @Param(value = {"SM2", "SM3", "SM4"})
     private String smAlgo;
@@ -55,8 +55,6 @@ public class GuoMiBenchMark {
         private SMService mockSVMService = null;
         private Enclave teeSDKEnclave = null;
         private SMService teeSDKService = null;
-        private Enclave embeddedLibOSEnclave = null;
-        private SMService embeddedLibOSService = null;
 
         @Setup
         public void createEnclave() throws Exception {
@@ -66,8 +64,6 @@ public class GuoMiBenchMark {
             mockSVMService = mockSVMEnclave.load(SMService.class).next();
             teeSDKEnclave = EnclaveFactory.create(EnclaveType.TEE_SDK);
             teeSDKService = teeSDKEnclave.load(SMService.class).next();
-            embeddedLibOSEnclave = EnclaveFactory.create(EnclaveType.EMBEDDED_LIB_OS);
-            embeddedLibOSService = embeddedLibOSEnclave.load(SMService.class).next();
         }
 
         @TearDown
@@ -75,7 +71,6 @@ public class GuoMiBenchMark {
             mockJVMEnclave.destroy();
             mockSVMEnclave.destroy();
             teeSDKEnclave.destroy();
-            embeddedLibOSEnclave.destroy();
         }
 
         public SMService getMockJVMServiceInstance() {
@@ -89,10 +84,6 @@ public class GuoMiBenchMark {
         public SMService getTeeSDKServiceInstance() {
             return teeSDKService;
         }
-
-        public SMService getEmbeddedLibOSServiceInstance() {
-            return embeddedLibOSService;
-        }
     }
 
     private void smBenchmarkImpl(EnclaveBenchmark enclave, String serviceName, String smAlgo) throws Exception {
@@ -107,9 +98,6 @@ public class GuoMiBenchMark {
             case "TEE_SDK":
                 service = enclave.getTeeSDKServiceInstance();
                 break;
-            case "EMBEDDED_LIB_OS":
-                service = enclave.getEmbeddedLibOSServiceInstance();
-                break;
         }
 
         int sm2Weight = 10;
diff --git a/benchmark/guomi/pom.xml b/benchmark/guomi/pom.xml
index 20f1a39..9f753f9 100644
--- a/benchmark/guomi/pom.xml
+++ b/benchmark/guomi/pom.xml
@@ -25,7 +25,7 @@
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.target>11</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</org.apache.teaclave.javasdk.platform>
+        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK</org.apache.teaclave.javasdk.platform>
     </properties>
     <dependencyManagement>
         <dependencies>
diff --git a/benchmark/guomi/run.sh b/benchmark/guomi/run.sh
index 91eec78..5cf05bf 100755
--- a/benchmark/guomi/run.sh
+++ b/benchmark/guomi/run.sh
@@ -1,4 +1,4 @@
-#/bin/bash
+#!/bin/bash
 
 # Licensed to the Apache Software Foundation (ASF) under one
 # or more contributor license agreements.  See the NOTICE file
@@ -19,4 +19,4 @@
 
 mvn -Pnative clean package
 
-OCCLUM_RELEASE_ENCLAVE=true java -Dorg.apache.teaclave.javasdk.enclave.metric.enable=false -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar org.apache.teaclave.javasdk.benchmark.guomi.host.GuoMiBenchMark
+OCCLUM_RELEASE_ENCLAVE=true $JAVA_HOME/bin/java -Dorg.apache.teaclave.javasdk.enclave.metric.enable=false -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar org.apache.teaclave.javasdk.benchmark.guomi.host.GuoMiBenchMark
diff --git a/benchmark/string/host/src/main/java/org/apache/teaclave/javasdk/benchmark/string/host/StringBenchMark.java b/benchmark/string/host/src/main/java/org/apache/teaclave/javasdk/benchmark/string/host/StringBenchMark.java
index 7cdc5da..d12f666 100644
--- a/benchmark/string/host/src/main/java/org/apache/teaclave/javasdk/benchmark/string/host/StringBenchMark.java
+++ b/benchmark/string/host/src/main/java/org/apache/teaclave/javasdk/benchmark/string/host/StringBenchMark.java
@@ -23,7 +23,7 @@ import java.util.concurrent.TimeUnit;
 @OutputTimeUnit(TimeUnit.MILLISECONDS)
 public class StringBenchMark {
 
-    @Param(value = {"MOCK_IN_JVM", "MOCK_IN_SVM", "TEE_SDK", "EMBEDDED_LIB_OS"})
+    @Param(value = {"MOCK_IN_JVM", "MOCK_IN_SVM", "TEE_SDK"})
     private String enclaveServiceInstance;
     @Param(value = {"regex", "concat", "split"})
     private String stringOpt;
@@ -47,8 +47,6 @@ public class StringBenchMark {
             mockSVMService = mockSVMEnclave.load(StringOperationMetric.class).next();
             teeSDKEnclave = EnclaveFactory.create(EnclaveType.TEE_SDK);
             teeSDKService = teeSDKEnclave.load(StringOperationMetric.class).next();
-            embeddedLibOSEnclave = EnclaveFactory.create(EnclaveType.EMBEDDED_LIB_OS);
-            embeddedLibOSService = embeddedLibOSEnclave.load(StringOperationMetric.class).next();
         }
 
         @TearDown
@@ -56,7 +54,6 @@ public class StringBenchMark {
             mockJVMEnclave.destroy();
             mockSVMEnclave.destroy();
             teeSDKEnclave.destroy();
-            embeddedLibOSEnclave.destroy();
         }
 
         public StringOperationMetric getMockJVMServiceInstance() {
@@ -70,10 +67,6 @@ public class StringBenchMark {
         public StringOperationMetric getTeeSDKServiceInstance() {
             return teeSDKService;
         }
-
-        public StringOperationMetric getEmbeddedLibOSServiceInstance() {
-            return embeddedLibOSService;
-        }
     }
 
     private void stringBenchMarkImpl(EnclaveBenchmark enclave, String enclaveServiceInstance, String stringOpt) {
@@ -88,9 +81,6 @@ public class StringBenchMark {
             case "TEE_SDK":
                 service = enclave.getTeeSDKServiceInstance();
                 break;
-            case "EMBEDDED_LIB_OS":
-                service = enclave.getEmbeddedLibOSServiceInstance();
-                break;
         }
 
         int regexWeight = 5000;
diff --git a/benchmark/string/pom.xml b/benchmark/string/pom.xml
index 852d0ff..2e8bb05 100644
--- a/benchmark/string/pom.xml
+++ b/benchmark/string/pom.xml
@@ -25,7 +25,7 @@
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.target>11</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</org.apache.teaclave.javasdk.platform>
+        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK</org.apache.teaclave.javasdk.platform>
     </properties>
     <dependencyManagement>
         <dependencies>
diff --git a/benchmark/string/run.sh b/benchmark/string/run.sh
index fb60d7e..dd05f93 100755
--- a/benchmark/string/run.sh
+++ b/benchmark/string/run.sh
@@ -1,5 +1,5 @@
-#/bin/bash
+#!/bin/bash
 
 mvn -Pnative clean package
 
-OCCLUM_RELEASE_ENCLAVE=true java -Dorg.apache.teaclave.javasdk.enclave.metric.enable=false -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar org.apache.teaclave.javasdk.benchmark.string.host.StringBenchMark
+OCCLUM_RELEASE_ENCLAVE=true $JAVA_HOME/bin/java -Dorg.apache.teaclave.javasdk.enclave.metric.enable=false -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar org.apache.teaclave.javasdk.benchmark.string.host.StringBenchMark
diff --git a/coverage/run.sh b/coverage/run.sh
index 5680840..0569fe8 100755
--- a/coverage/run.sh
+++ b/coverage/run.sh
@@ -30,7 +30,7 @@ wget https://search.maven.org/remotecontent?filepath=org/jacoco/jacoco/0.8.3/jac
 popd
 
 # Generate Teaclave java sdk test coverage data.
-OCCLUM_RELEASE_ENCLAVE=true java -javaagent:jacoco/lib/jacocoagent.jar=destfile=./result/jacoco.exec,append=true,classdumpdir=result/classes,includes=org.apache.teaclave.javasdk.host.*:org.apache.teaclave.javasdk.common.*:org.apache.teaclave.javasdk.enclave.*,output=file -cp ${TEST_PATH}/host/target/host-0.1.0-jar-with-dependencies.jar:${TEST_PATH}enclave/target/enclave-0.1.0-jar-with-dependencies.jar org.apache.teaclave.javasdk.test.host.TestMain
+OCCLUM_RELEASE_ENCLAVE=true $JAVA_HOME/bin/java -javaagent:jacoco/lib/jacocoagent.jar=destfile=./result/jacoco.exec,append=true,classdumpdir=result/classes,includes=org.apache.teaclave.javasdk.host.*:org.apache.teaclave.javasdk.common.*:org.apache.teaclave.javasdk.enclave.*,output=file -cp ${TEST_PATH}/host/target/host-0.1.0-jar-with-dependencies.jar:${TEST_PATH}enclave/target/enclave-0.1.0-jar-with-dependencies.jar org.apache.teaclave.javasdk.test.host.TestMain
 
 # Generate Teaclave java sdk test coverage report.
-java -jar jacoco/lib/jacococli.jar report result/jacoco.exec --classfiles result/classes --html site
\ No newline at end of file
+$JAVA_HOME/bin/java -jar jacoco/lib/jacococli.jar report result/jacoco.exec --classfiles result/classes --html site
\ No newline at end of file
diff --git a/samples/helloworld/host/src/main/java/org/apache/teaclave/javasdk/samples/helloworld/host/Main.java b/samples/helloworld/host/src/main/java/org/apache/teaclave/javasdk/samples/helloworld/host/Main.java
index e1fe92c..63befa9 100644
--- a/samples/helloworld/host/src/main/java/org/apache/teaclave/javasdk/samples/helloworld/host/Main.java
+++ b/samples/helloworld/host/src/main/java/org/apache/teaclave/javasdk/samples/helloworld/host/Main.java
@@ -29,8 +29,7 @@ public class Main {
         EnclaveType[] enclaveTypes = {
                 EnclaveType.MOCK_IN_JVM,
                 EnclaveType.MOCK_IN_SVM,
-                EnclaveType.TEE_SDK,
-                EnclaveType.EMBEDDED_LIB_OS};
+                EnclaveType.TEE_SDK};
 
         for (EnclaveType enclaveType : enclaveTypes) {
             Enclave enclave = EnclaveFactory.create(enclaveType);
diff --git a/samples/helloworld/pom.xml b/samples/helloworld/pom.xml
index 226cf9d..4abdf41 100644
--- a/samples/helloworld/pom.xml
+++ b/samples/helloworld/pom.xml
@@ -24,7 +24,7 @@
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.target>11</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</org.apache.teaclave.javasdk.platform>
+        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK</org.apache.teaclave.javasdk.platform>
     </properties>
     <dependencyManagement>
         <dependencies>
diff --git a/samples/helloworld/run.sh b/samples/helloworld/run.sh
index c87332b..2cb7827 100755
--- a/samples/helloworld/run.sh
+++ b/samples/helloworld/run.sh
@@ -2,4 +2,4 @@
 
 mvn -Pnative clean package
 
-OCCLUM_RELEASE_ENCLAVE=true java -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar org.apache.teaclave.javasdk.samples.helloworld.host.Main
+OCCLUM_RELEASE_ENCLAVE=true $JAVA_HOME/bin/java -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar org.apache.teaclave.javasdk.samples.helloworld.host.Main
diff --git a/samples/springboot/pom.xml b/samples/springboot/pom.xml
index 9b2172a..63979a4 100644
--- a/samples/springboot/pom.xml
+++ b/samples/springboot/pom.xml
@@ -30,7 +30,7 @@
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.target>11</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</org.apache.teaclave.javasdk.platform>
+        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK</org.apache.teaclave.javasdk.platform>
     </properties>
     <dependencyManagement>
         <dependencies>
diff --git a/samples/springboot/run.sh b/samples/springboot/run.sh
index eb88d0d..e7be21d 100755
--- a/samples/springboot/run.sh
+++ b/samples/springboot/run.sh
@@ -21,7 +21,7 @@
 mvn -Pnative clean package
 
 # step2: startup springboot application service.
-OCCLUM_RELEASE_ENCLAVE=true java -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar org.apache.teaclave.javasdk.samples.springboot.host.Application &
+OCCLUM_RELEASE_ENCLAVE=true $JAVA_HOME/bin/java -cp host/target/host-1.0-SNAPSHOT-jar-with-dependencies.jar:enclave/target/enclave-1.0-SNAPSHOT-jar-with-dependencies.jar org.apache.teaclave.javasdk.samples.springboot.host.Application &
 sleep 5
 # shellcheck disable=SC2006
 # shellcheck disable=SC2009
diff --git a/sdk/pom.xml b/sdk/pom.xml
index 7d2dd99..d5ac15d 100644
--- a/sdk/pom.xml
+++ b/sdk/pom.xml
@@ -81,7 +81,7 @@
         <maven.compiler.source>11</maven.compiler.source>
         <maven.compiler.target>11</maven.compiler.target>
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
-        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</org.apache.teaclave.javasdk.platform>
+        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK</org.apache.teaclave.javasdk.platform>
         <surefire.version>3.0.0-M5</surefire.version>
         <svm.maven.version>0.9.13</svm.maven.version>
     </properties>
diff --git a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveAES.java b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveAES.java
index 9c27772..52a9556 100644
--- a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveAES.java
+++ b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveAES.java
@@ -43,8 +43,7 @@ public class TestEnclaveAES {
         EnclaveType[] types = new EnclaveType[]{
                 EnclaveType.MOCK_IN_JVM,
                 EnclaveType.MOCK_IN_SVM,
-                EnclaveType.TEE_SDK,
-                EnclaveType.EMBEDDED_LIB_OS};
+                EnclaveType.TEE_SDK};
 
         for (EnclaveType type : types) {
             Enclave enclave = EnclaveFactory.create(type);
diff --git a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveConcurrency.java b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveConcurrency.java
index 0506f16..6e1b3ed 100644
--- a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveConcurrency.java
+++ b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveConcurrency.java
@@ -106,7 +106,6 @@ public class TestEnclaveConcurrency {
         enclaveConcurrency(EnclaveType.MOCK_IN_JVM);
         enclaveConcurrency(EnclaveType.MOCK_IN_SVM);
         enclaveConcurrency(EnclaveType.TEE_SDK);
-        enclaveConcurrency(EnclaveType.EMBEDDED_LIB_OS);
     }
 
     @Test
@@ -114,6 +113,5 @@ public class TestEnclaveConcurrency {
         enclaveConcurrencySync(EnclaveType.MOCK_IN_JVM);
         enclaveConcurrencySync(EnclaveType.MOCK_IN_SVM);
         enclaveConcurrencySync(EnclaveType.TEE_SDK);
-        enclaveConcurrencySync(EnclaveType.EMBEDDED_LIB_OS);
     }
 }
diff --git a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveException.java b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveException.java
index f53d046..100e77f 100644
--- a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveException.java
+++ b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveException.java
@@ -57,6 +57,5 @@ public class TestEnclaveException {
         javaEnclaveException(EnclaveType.MOCK_IN_JVM);
         javaEnclaveException(EnclaveType.MOCK_IN_SVM);
         javaEnclaveException(EnclaveType.TEE_SDK);
-        javaEnclaveException(EnclaveType.EMBEDDED_LIB_OS);
     }
 }
diff --git a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveInfo.java b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveInfo.java
index 722b8c4..1cd70e8 100644
--- a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveInfo.java
+++ b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveInfo.java
@@ -61,14 +61,5 @@ public class TestEnclaveInfo {
         assertEquals(enclaveInfo.getEnclaveEPCMemorySizeBytes(), 1500 * 1024 * 1024);
         assertEquals(enclaveInfo.getEnclaveMaxThreadsNumber(), 50);
         enclave.destroy();
-
-        // it's related to config file in test project.
-        enclave = EnclaveFactory.create(EnclaveType.EMBEDDED_LIB_OS);
-        enclaveInfo = enclave.getEnclaveInfo();
-        assertEquals(enclaveInfo.getEnclaveType(), EnclaveType.EMBEDDED_LIB_OS);
-        assertFalse(enclaveInfo.isEnclaveDebuggable());
-        assertEquals(enclaveInfo.getEnclaveEPCMemorySizeBytes(), 1500 * 1024 * 1024);
-        assertEquals(enclaveInfo.getEnclaveMaxThreadsNumber(), 50);
-        enclave.destroy();
     }
 }
diff --git a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveInfoMXBean.java b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveInfoMXBean.java
index 0c1ab76..f415738 100644
--- a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveInfoMXBean.java
+++ b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveInfoMXBean.java
@@ -78,14 +78,6 @@ public class TestEnclaveInfoMXBean {
         assertEquals(enclaveInfoTEE.getEnclaveEPCMemorySizeBytes(), 1500 * 1024 * 1024);
         assertEquals(enclaveInfoTEE.getEnclaveMaxThreadsNumber(), 50);
 
-        // it's related to config file in test project.
-        Enclave enclaveLIBOS = EnclaveFactory.create(EnclaveType.EMBEDDED_LIB_OS);
-        EnclaveInfo enclaveInfoLIBOS = enclaveLIBOS.getEnclaveInfo();
-        assertEquals(enclaveInfoLIBOS.getEnclaveType(), EnclaveType.EMBEDDED_LIB_OS);
-        assertFalse(enclaveInfoLIBOS.isEnclaveDebuggable());
-        assertEquals(enclaveInfoLIBOS.getEnclaveEPCMemorySizeBytes(), 1500 * 1024 * 1024);
-        assertEquals(enclaveInfoLIBOS.getEnclaveMaxThreadsNumber(), 50);
-
         enclaveInfoMXBeanStub = new ObjectName(DOMAIN_NAME + ":name=" + ENCLAVE_MX_BEAN_STUB);
         MBeanServer mxBeanService = ManagementFactory.getPlatformMBeanServer();
         mxBeanService.registerMBean(
@@ -103,7 +95,6 @@ public class TestEnclaveInfoMXBean {
         enclaveJVM.destroy();
         enclaveSVM.destroy();
         enclaveTEE.destroy();
-        enclaveLIBOS.destroy();
     }
 
     @Before
@@ -129,9 +120,9 @@ public class TestEnclaveInfoMXBean {
         JMXConnector jmxClient = JMXConnectorFactory.connect(url);
         MBeanServerConnection mbsClient = jmxClient.getMBeanServerConnection();
         ObjectName mBeanName = new ObjectName(DOMAIN_NAME + ":name=" + ENCLAVE_MX_BEAN_STUB);
-        assertEquals(4, mbsClient.getAttribute(mBeanName, "EnclaveInstanceNumber"));
+        assertEquals(3, mbsClient.getAttribute(mBeanName, "EnclaveInstanceNumber"));
         CompositeData[] enclaveInfos = (CompositeData[]) mbsClient.getAttribute(mBeanName, "EnclaveInstancesInfo");
-        assertEquals(4, enclaveInfos.length);
+        assertEquals(3, enclaveInfos.length);
         for (CompositeData enclaveInfo : enclaveInfos) {
             String enclaveType = (String) enclaveInfo.get("enclaveType");
             switch (enclaveType) {
diff --git a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveMetricTrace.java b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveMetricTrace.java
index 2ae7793..3709558 100644
--- a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveMetricTrace.java
+++ b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveMetricTrace.java
@@ -57,8 +57,7 @@ public class TestEnclaveMetricTrace {
         EnclaveType[] types = new EnclaveType[] {
                 EnclaveType.MOCK_IN_JVM,
                 EnclaveType.MOCK_IN_SVM,
-                EnclaveType.TEE_SDK,
-                EnclaveType.EMBEDDED_LIB_OS};
+                EnclaveType.TEE_SDK};
         for (EnclaveType type : types) {
             Enclave enclave = EnclaveFactory.create(type);
             assertNotNull(enclave);
@@ -86,7 +85,7 @@ public class TestEnclaveMetricTrace {
         assertTrue(str.contains("enclave_destroying_cost"));
         assertTrue(str.contains("enclave_service_loading"));
         assertTrue(str.contains("TEE_SDK"));
-        assertTrue(str.contains("EMBEDDED_LIB_OS"));
+        // assertTrue(str.contains("EMBEDDED_LIB_OS"));
         assertTrue(file.delete());
     }
 }
diff --git a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveRSA.java b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveRSA.java
index 487d669..6edaefc 100644
--- a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveRSA.java
+++ b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveRSA.java
@@ -43,8 +43,7 @@ public class TestEnclaveRSA {
         EnclaveType[] types = new EnclaveType[]{
                 EnclaveType.MOCK_IN_JVM,
                 EnclaveType.MOCK_IN_SVM,
-                EnclaveType.TEE_SDK,
-                EnclaveType.EMBEDDED_LIB_OS};
+                EnclaveType.TEE_SDK};
 
         for (EnclaveType type : types) {
             Enclave enclave = EnclaveFactory.create(type);
diff --git a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveReflection.java b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveReflection.java
index d5b14d5..7301ab2 100644
--- a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveReflection.java
+++ b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveReflection.java
@@ -58,6 +58,6 @@ public class TestEnclaveReflection {
         reflectionCallService(EnclaveType.MOCK_IN_JVM);
         reflectionCallService(EnclaveType.MOCK_IN_SVM);
         reflectionCallService(EnclaveType.TEE_SDK);
-        reflectionCallService(EnclaveType.EMBEDDED_LIB_OS);
+        // reflectionCallService(EnclaveType.EMBEDDED_LIB_OS);
     }
 }
diff --git a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveSHA.java b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveSHA.java
index 4de078a..9719b53 100644
--- a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveSHA.java
+++ b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveSHA.java
@@ -56,8 +56,7 @@ public class TestEnclaveSHA {
         EnclaveType[] types = new EnclaveType[]{
                 EnclaveType.MOCK_IN_JVM,
                 EnclaveType.MOCK_IN_SVM,
-                EnclaveType.TEE_SDK,
-                EnclaveType.EMBEDDED_LIB_OS};
+                EnclaveType.TEE_SDK};
 
         for (EnclaveType type : types) {
             Enclave enclave = EnclaveFactory.create(type);
diff --git a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveServiceGC.java b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveServiceGC.java
index 93a7f9a..25f9955 100644
--- a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveServiceGC.java
+++ b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestEnclaveServiceGC.java
@@ -58,6 +58,6 @@ public class TestEnclaveServiceGC {
     public void testEnclaveServiceGC() throws Exception {
         enclaveServiceGC(EnclaveType.MOCK_IN_SVM);
         enclaveServiceGC(EnclaveType.TEE_SDK);
-        enclaveServiceGC(EnclaveType.EMBEDDED_LIB_OS);
+        // enclaveServiceGC(EnclaveType.EMBEDDED_LIB_OS);
     }
 }
diff --git a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestHelloWorld.java b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestHelloWorld.java
index 1305e95..240a39c 100644
--- a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestHelloWorld.java
+++ b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestHelloWorld.java
@@ -59,6 +59,6 @@ public class TestHelloWorld {
         assertEquals("Hello World", sayHelloService(EnclaveType.MOCK_IN_JVM, "Hello World"));
         assertEquals("Hello World", sayHelloService(EnclaveType.MOCK_IN_SVM, "Hello World"));
         assertEquals("Hello World", sayHelloService(EnclaveType.TEE_SDK, "Hello World"));
-        assertEquals("Hello World", sayHelloService(EnclaveType.EMBEDDED_LIB_OS, "Hello World"));
+        // assertEquals("Hello World", sayHelloService(EnclaveType.EMBEDDED_LIB_OS, "Hello World"));
     }
 }
diff --git a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestRemoteAttestation.java b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestRemoteAttestation.java
index e4cf999..68f5414 100644
--- a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestRemoteAttestation.java
+++ b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestRemoteAttestation.java
@@ -62,6 +62,6 @@ public class TestRemoteAttestation {
     @Test
     public void testRemoteAttestation() throws Exception {
         remoteAttestation(EnclaveType.TEE_SDK);
-        remoteAttestation(EnclaveType.EMBEDDED_LIB_OS);
+        // remoteAttestation(EnclaveType.EMBEDDED_LIB_OS);
     }
 }
diff --git a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestSMEnclave.java b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestSMEnclave.java
index 18bc005..a3f7d3c 100644
--- a/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestSMEnclave.java
+++ b/test/host/src/main/java/org/apache/teaclave/javasdk/test/host/TestSMEnclave.java
@@ -56,8 +56,7 @@ public class TestSMEnclave {
         EnclaveType[] types = new EnclaveType[]{
                 EnclaveType.MOCK_IN_JVM,
                 EnclaveType.MOCK_IN_SVM,
-                EnclaveType.TEE_SDK,
-                EnclaveType.EMBEDDED_LIB_OS};
+                EnclaveType.TEE_SDK};
 
         for (EnclaveType type : types) {
             Enclave enclave = EnclaveFactory.create(type);
@@ -78,8 +77,7 @@ public class TestSMEnclave {
         EnclaveType[] types = new EnclaveType[]{
                 EnclaveType.MOCK_IN_JVM,
                 EnclaveType.MOCK_IN_SVM,
-                EnclaveType.TEE_SDK,
-                EnclaveType.EMBEDDED_LIB_OS};
+                EnclaveType.TEE_SDK};
 
         for (EnclaveType type : types) {
             Enclave enclave = EnclaveFactory.create(type);
@@ -100,8 +98,7 @@ public class TestSMEnclave {
         EnclaveType[] types = new EnclaveType[]{
                 EnclaveType.MOCK_IN_JVM,
                 EnclaveType.MOCK_IN_SVM,
-                EnclaveType.TEE_SDK,
-                EnclaveType.EMBEDDED_LIB_OS};
+                EnclaveType.TEE_SDK};
 
         for (EnclaveType type : types) {
             Enclave enclave = EnclaveFactory.create(type);
@@ -121,8 +118,7 @@ public class TestSMEnclave {
         EnclaveType[] types = new EnclaveType[]{
                 EnclaveType.MOCK_IN_JVM,
                 EnclaveType.MOCK_IN_SVM,
-                EnclaveType.TEE_SDK,
-                EnclaveType.EMBEDDED_LIB_OS};
+                EnclaveType.TEE_SDK};
 
         for (EnclaveType type : types) {
             Enclave enclave = EnclaveFactory.create(type);
diff --git a/test/pom.xml b/test/pom.xml
index 6230c5c..e99ff13 100644
--- a/test/pom.xml
+++ b/test/pom.xml
@@ -27,7 +27,7 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <graal.version>22.2.0</graal.version>
         <surefire.version>3.0.0-M5</surefire.version>
-        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK:EMBEDDED_LIB_OS</org.apache.teaclave.javasdk.platform>
+        <org.apache.teaclave.javasdk.platform>MOCK_IN_SVM:TEE_SDK</org.apache.teaclave.javasdk.platform>
     </properties>
     <dependencyManagement>
         <dependencies>
diff --git a/test/run.sh b/test/run.sh
index ea8a404..6c9c9b3 100755
--- a/test/run.sh
+++ b/test/run.sh
@@ -27,4 +27,4 @@ echo "USE_SECURE_CERT=TRUE" >> /etc/sgx_default_qcnl.conf
 mvn -Pnative clean package
 
 # Start Teaclave java sdk test.
-OCCLUM_RELEASE_ENCLAVE=true java -cp host/target/host-0.1.0-jar-with-dependencies.jar:enclave/target/enclave-0.1.0-jar-with-dependencies.jar org.apache.teaclave.javasdk.test.host.TestMain
+OCCLUM_RELEASE_ENCLAVE=true $JAVA_HOME/bin/java -cp host/target/host-0.1.0-jar-with-dependencies.jar:enclave/target/enclave-0.1.0-jar-with-dependencies.jar org.apache.teaclave.javasdk.test.host.TestMain
diff --git a/tools/cicd/anolis-8.6/dockerfile_build b/tools/cicd/anolis-8.6/dockerfile_build
new file mode 100644
index 0000000..9e19391
--- /dev/null
+++ b/tools/cicd/anolis-8.6/dockerfile_build
@@ -0,0 +1,40 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+FROM openanolis/anolisos:8.6-x86_64 as java_enclave_build_anolis_8_6
+
+LABEL maintainer="Junshao Wang"
+
+ENV GRAALVM_HOME="/root/tools/graalvm-ce-java11-22.2.0"
+ENV JAVA_HOME="/root/tools/graalvm-ce-java11-22.2.0"
+ENV PATH="$PATH:/root/tools/x86_64-linux-musl-native/bin"
+
+ADD ["tmpDownloadDir/graalvm-ce-java11-22.2.0.tar.gz", "/root/tools/"]
+ADD ["tmpDownloadDir/sgx_linux_x64_sdk_2.17.101.1.bin", "/root/tools/"]
+ADD ["tmpDownloadDir/x86_64-linux-musl-native.tgz", "/root/tools"]
+ADD ["tmpDownloadDir/zlib-1.2.11.tar.gz", "/root/tools/"]
+
+# install necessary tools.
+RUN dnf clean all && rm -r /var/cache/dnf && \
+    dnf --enablerepo=PowerTools install -y make cmake autoconf libtool gcc gcc-c++ openssl-devel libcurl-devel dnf-utils patch maven gdb gnupg wget tzdata jq unzip && \
+    wget https://download.01.org/intel-sgx/latest/linux-latest/distro/Anolis86/sgx_rpm_local_repo.tgz && \
+    tar zxvf sgx_rpm_local_repo.tgz && \
+    dnf config-manager --add-repo sgx_rpm_local_repo && \
+    dnf makecache && rm -rf sgx_rpm_local_repo.tgz && \
+    dnf install --nogpgcheck -y libsgx-headers libsgx-dcap-quote-verify-devel libsgx-dcap-ql-devel && \
+    cd /root/tools/zlib-1.2.11 && ./configure --prefix=/root/tools/x86_64-linux-musl-native && CC=/root/tools/x86_64-linux-musl-native/bin/gcc make && make install && \
+    cd /root/tools && chmod 777 sgx_linux_x64_sdk_2.17.101.1.bin && echo -e 'no\n/opt/teesdk\n' | ./sgx_linux_x64_sdk_2.17.101.1.bin
diff --git a/tools/cicd/dockerfile_release b/tools/cicd/anolis-8.6/dockerfile_release
similarity index 92%
copy from tools/cicd/dockerfile_release
copy to tools/cicd/anolis-8.6/dockerfile_release
index 279d472..7855656 100644
--- a/tools/cicd/dockerfile_release
+++ b/tools/cicd/anolis-8.6/dockerfile_release
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-FROM javaenclave_base:v0.1.0 as javaenclave_release
+FROM java_enclave_build_anolis8.6:v0.1.0 as java_enclave_release_anolis_8_6
 
 LABEL maintainer="Junshao Wang"
 
diff --git a/tools/cicd/graalvm/build_graalvm_jdk.sh b/tools/cicd/anolis-8.6/graalvm/build_graalvm_jdk.sh
similarity index 93%
copy from tools/cicd/graalvm/build_graalvm_jdk.sh
copy to tools/cicd/anolis-8.6/graalvm/build_graalvm_jdk.sh
index 1e8d5ca..256369c 100755
--- a/tools/cicd/graalvm/build_graalvm_jdk.sh
+++ b/tools/cicd/anolis-8.6/graalvm/build_graalvm_jdk.sh
@@ -20,7 +20,7 @@
 SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
 pushd "${SHELL_FOLDER}"
 
-apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y wget
+dnf clean all && rm -r /var/cache/dnf && dnf --enablerepo=PowerTools install -y wget
 
 # Download GraalVM_22.2.0 JDK from github
 wget -c -q https://github.com/graalvm/graalvm-ce-builds/releases/download/vm-22.2.0/graalvm-ce-java11-linux-amd64-22.2.0.tar.gz -O - | tar -xz
diff --git a/tools/cicd/teesdk/make.sh b/tools/cicd/anolis-8.6/graalvm/make.sh
similarity index 78%
copy from tools/cicd/teesdk/make.sh
copy to tools/cicd/anolis-8.6/graalvm/make.sh
index 3937515..6abaff0 100755
--- a/tools/cicd/teesdk/make.sh
+++ b/tools/cicd/anolis-8.6/graalvm/make.sh
@@ -20,7 +20,8 @@
 SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
 pushd "${SHELL_FOLDER}"
 
-# download intel sgx sdk and build it in docker ubuntu:18.04
-docker run -i --rm --network host -v `pwd`:`pwd` ubuntu:18.04 /bin/bash "${SHELL_FOLDER}"/build_tee_sdk.sh
+# download graalvm_22.2.0 and install native-image in docker anolis8.6
+# shellcheck disable=SC2046
+docker run -i --rm --network host -v `pwd`:`pwd` openanolis/anolisos:8.6-x86_64 /bin/bash "${SHELL_FOLDER}"/build_graalvm_jdk.sh
 
 popd
\ No newline at end of file
diff --git a/tools/cicd/make.sh b/tools/cicd/anolis-8.6/make.sh
similarity index 61%
copy from tools/cicd/make.sh
copy to tools/cicd/anolis-8.6/make.sh
index d5cd9da..eb08e43 100755
--- a/tools/cicd/make.sh
+++ b/tools/cicd/anolis-8.6/make.sh
@@ -19,22 +19,22 @@
 
 STAGE=$1
 
-BASE_IMAGE=javaenclave_base
-BASE_TAG=v0.1.0
+BUILD_IMAGE=java_enclave_build_anolis8.6
+BUILD_TAG=v0.1.0
 
-RELEASE_IMAGE=javaenclave_release
+RELEASE_IMAGE=java_enclave_release_anolis8.6
 RELEASE_TAG=v0.1.0
 
 SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
 cd "${SHELL_FOLDER}"
 
-WORKDIR=$(dirname $(dirname "$PWD"))
+WORKDIR=$(dirname $(dirname $(dirname "$PWD")))
 # Set PCCS for DCAP Remote Attestation.
 PCCS_URL='https://sgx-dcap-server.cn-beijing.aliyuncs.com/sgx/certification/v3/'
 
 function build_base_image() {
   # check base image exist or not, build it if not.
-  if [[ "$(docker images -q ${BASE_IMAGE}:${BASE_TAG} 2> /dev/null)" == "" ]]; then
+  if [[ "$(docker images -q ${BUILD_IMAGE}:${BUILD_TAG} 2> /dev/null)" == "" ]]; then
     echo "prepare for dependency"
     rm -rf tmpDownloadDir && mkdir -p tmpDownloadDir
     # download intel-sgx(branch: stdc_ex) and build it for tee sdk.
@@ -45,18 +45,17 @@ function build_base_image() {
     # cp -r ./graalvm/graalvm-ce-java11-22.2.0.tar.gz ./tmpDownloadDir
     # download zlib-1.2.11.tar.gz
     wget -P tmpDownloadDir https://zlib.net/fossils/zlib-1.2.11.tar.gz
-    # download Alibaba Dragonwell_11_alpine
-    wget -P tmpDownloadDir https://github.com/alibaba/dragonwell11/releases/download/dragonwell-standard-11.0.16.12_jdk-11.0.16-ga/Alibaba_Dragonwell_Standard_11.0.16.12.8_x64_alpine-linux.tar.gz
-
+    # download x86_64-linux-musl-native.tgz
+    wget -P tmpDownloadDir http://more.musl.cc/10/x86_64-linux-musl/x86_64-linux-musl-native.tgz
     echo "build base image"
     # Build JavaEnclave Base Image.
-    docker build -t ${BASE_IMAGE}:${BASE_TAG} -f dockerfile_base .
+    docker build -t ${BUILD_IMAGE}:${BUILD_TAG} -f dockerfile_build .
     rm -rf tmpDownloadDir
   fi
 }
 
-function build_javaenclave() {
-  echo "build javaenclave"
+function build_java_enclave() {
+  echo "build java enclave in anolis8.6 container"
   build_base_image
   mkdir -p "${HOME}"/.m2
   docker run -i --rm --privileged --network host                    \
@@ -64,22 +63,21 @@ function build_javaenclave() {
   -v "${HOME}"/.m2:/root/.m2 -v "${WORKDIR}":"${WORKDIR}"           \
   -v /dev/sgx_enclave:/dev/sgx_enclave             \
   -v /dev/sgx_provision:/dev/sgx_provision         \
-  ${BASE_IMAGE}:${BASE_TAG} /bin/bash build.sh $1
+  ${BUILD_IMAGE}:${BUILD_TAG} /bin/bash build.sh $1
 }
 
 function build_release_image() {
   # check release image exist or not, build it if not.
   if [[ "$(docker images -q ${RELEASE_IMAGE}:${RELEASE_TAG} 2> /dev/null)" == "" ]]; then
     echo "build release image"
-    build_javaenclave
-    tar zcvf javaenclave.tar.gz -C ${WORKDIR}/release/opt javaenclave
+    tar zcvf javaenclave.tar.gz -C "${WORKDIR}"/release/opt javaenclave
     docker build -t ${RELEASE_IMAGE}:${RELEASE_TAG} -f dockerfile_release .
     rm -rf javaenclave.tar.gz
   fi
 }
 
-function test_javaenclave() {
-  echo "test javaenclave"
+function test_java_enclave() {
+  echo "test java enclave"
   build_release_image
   mkdir -p "${HOME}"/.m2
   # test JavaEnclave's unit test cases
@@ -92,7 +90,7 @@ function test_javaenclave() {
   ${RELEASE_IMAGE}:${RELEASE_TAG} /bin/bash build.sh $1
 }
 
-function collect_javaenclave_coverage() {
+function collect_java_enclave_coverage() {
   echo "collect and analysis javaenclave's test coverage"
   build_release_image
   mkdir -p "${HOME}"/.m2
@@ -106,8 +104,8 @@ function collect_javaenclave_coverage() {
   ${RELEASE_IMAGE}:${RELEASE_TAG} /bin/bash build.sh $1
 }
 
-function samples_javaenclave() {
-  echo "samples javaenclave"
+function samples_java_enclave() {
+  echo "samples java enclave"
   build_release_image
   mkdir -p "${HOME}"/.m2
   # samples JavaEnclave's samples
@@ -120,8 +118,8 @@ function samples_javaenclave() {
   ${RELEASE_IMAGE}:${RELEASE_TAG} /bin/bash build.sh $1
 }
 
-function benchmark_javaenclave() {
-  echo "benchmark javaenclave"
+function benchmark_java_enclave() {
+  echo "benchmark java enclave"
   build_release_image
   mkdir -p "${HOME}"/.m2
   # benchmark JavaEnclave
@@ -134,38 +132,38 @@ function benchmark_javaenclave() {
   ${RELEASE_IMAGE}:${RELEASE_TAG} /bin/bash build.sh $1
 }
 
-function collect_javaenclave_release() {
-  echo "collect javaenclave release"
-  mkdir -p ${WORKDIR}/release/opt/javaenclave
-  cp -r ${WORKDIR}/sdk/native/bin ${WORKDIR}/release/opt/javaenclave
-  cp -r ${WORKDIR}/sdk/native/config ${WORKDIR}/release/opt/javaenclave
-  cp -r ${WORKDIR}/sdk/native/script/build_app ${WORKDIR}/release/opt/javaenclave
-  mkdir -p ${WORKDIR}/release/opt/javaenclave/jar/sdk
-  mkdir -p ${WORKDIR}/release/opt/javaenclave/jar/sdk/host
-  mkdir -p ${WORKDIR}/release/opt/javaenclave/jar/sdk/enclave
-  mkdir -p ${WORKDIR}/release/opt/javaenclave/jar/sdk/common
-  cp -r ${WORKDIR}/sdk/pom.xml ${WORKDIR}/release/opt/javaenclave/jar/sdk
-  cp -r ${WORKDIR}/sdk/host/pom.xml ${WORKDIR}/release/opt/javaenclave/jar/sdk/host
-  cp -r ${WORKDIR}/sdk/host/target/*.jar ${WORKDIR}/release/opt/javaenclave/jar/sdk/host
-  cp -r ${WORKDIR}/sdk/enclave/pom.xml ${WORKDIR}/release/opt/javaenclave/jar/sdk/enclave
-  cp -r ${WORKDIR}/sdk/enclave/target/*.jar ${WORKDIR}/release/opt/javaenclave/jar/sdk/enclave
-  cp -r ${WORKDIR}/sdk/common/pom.xml ${WORKDIR}/release/opt/javaenclave/jar/sdk/common
-  cp -r ${WORKDIR}/sdk/common/target/*.jar ${WORKDIR}/release/opt/javaenclave/jar/sdk/common
-  mkdir -p ${WORKDIR}/release/opt/javaenclave/jar/archetype
-  cp -r ${WORKDIR}/archetype/pom.xml ${WORKDIR}/release/opt/javaenclave/jar/archetype
-  cp -r ${WORKDIR}/archetype/target/*.jar ${WORKDIR}/release/opt/javaenclave/jar/archetype
-  mkdir -p ${WORKDIR}/release/opt/javaenclave/jar/bouncycastle-native
-  cp -r ${WORKDIR}/third-party-libs/bouncycastle-native/pom.xml ${WORKDIR}/release/opt/javaenclave/jar/bouncycastle-native
-  cp -r ${WORKDIR}/third-party-libs/bouncycastle-native/target/*.jar ${WORKDIR}/release/opt/javaenclave/jar/bouncycastle-native
-  cp -r ${WORKDIR}/test ${WORKDIR}/release/opt/javaenclave/
-  cp -r ${WORKDIR}/samples ${WORKDIR}/release/opt/javaenclave/
-  cp -r ${WORKDIR}/coverage ${WORKDIR}/release/opt/javaenclave/
-  cp -r ${WORKDIR}/benchmark ${WORKDIR}/release/opt/javaenclave/
+function collect_java_enclave_release() {
+  echo "collect java enclave release"
+  mkdir -p "${WORKDIR}"/release/opt/javaenclave
+  cp -r "${WORKDIR}"/sdk/native/bin "${WORKDIR}"/release/opt/javaenclave
+  cp -r "${WORKDIR}"/sdk/native/config "${WORKDIR}"/release/opt/javaenclave
+  cp -r "${WORKDIR}"/sdk/native/script/build_app "${WORKDIR}"/release/opt/javaenclave
+  mkdir -p "${WORKDIR}"/release/opt/javaenclave/jar/sdk
+  mkdir -p "${WORKDIR}"/release/opt/javaenclave/jar/sdk/host
+  mkdir -p "${WORKDIR}"/release/opt/javaenclave/jar/sdk/enclave
+  mkdir -p "${WORKDIR}"/release/opt/javaenclave/jar/sdk/common
+  cp -r "${WORKDIR}"/sdk/pom.xml "${WORKDIR}"/release/opt/javaenclave/jar/sdk
+  cp -r "${WORKDIR}"/sdk/host/pom.xml "${WORKDIR}"/release/opt/javaenclave/jar/sdk/host
+  cp -r "${WORKDIR}"/sdk/host/target/*.jar "${WORKDIR}"/release/opt/javaenclave/jar/sdk/host
+  cp -r "${WORKDIR}"/sdk/enclave/pom.xml "${WORKDIR}"/release/opt/javaenclave/jar/sdk/enclave
+  cp -r "${WORKDIR}"/sdk/enclave/target/*.jar "${WORKDIR}"/release/opt/javaenclave/jar/sdk/enclave
+  cp -r "${WORKDIR}"/sdk/common/pom.xml "${WORKDIR}"/release/opt/javaenclave/jar/sdk/common
+  cp -r "${WORKDIR}"/sdk/common/target/*.jar "${WORKDIR}"/release/opt/javaenclave/jar/sdk/common
+  mkdir -p "${WORKDIR}"/release/opt/javaenclave/jar/archetype
+  cp -r "${WORKDIR}"/archetype/pom.xml "${WORKDIR}"/release/opt/javaenclave/jar/archetype
+  cp -r "${WORKDIR}"/archetype/target/*.jar "${WORKDIR}"/release/opt/javaenclave/jar/archetype
+  mkdir -p "${WORKDIR}"/release/opt/javaenclave/jar/bouncycastle-native
+  cp -r "${WORKDIR}"/third-party-libs/bouncycastle-native/pom.xml "${WORKDIR}"/release/opt/javaenclave/jar/bouncycastle-native
+  cp -r "${WORKDIR}"/third-party-libs/bouncycastle-native/target/*.jar "${WORKDIR}"/release/opt/javaenclave/jar/bouncycastle-native
+  cp -r "${WORKDIR}"/test "${WORKDIR}"/release/opt/javaenclave/
+  cp -r "${WORKDIR}"/samples "${WORKDIR}"/release/opt/javaenclave/
+  cp -r "${WORKDIR}"/coverage "${WORKDIR}"/release/opt/javaenclave/
+  cp -r "${WORKDIR}"/benchmark "${WORKDIR}"/release/opt/javaenclave/
   build_release_image
 }
 
-function develop_javaenclave() {
-  echo "develop javaenclave"
+function develop_java_enclave() {
+  echo "develop java enclave"
   mkdir -p "${HOME}"/.m2
   build_base_image
   docker run -it --rm --privileged --network host                   \
@@ -174,7 +172,7 @@ function develop_javaenclave() {
   -e PCCS_URL=${PCCS_URL}                                           \
   -v /dev/sgx_enclave:/dev/sgx_enclave             \
   -v /dev/sgx_provision:/dev/sgx_provision         \
-  ${BASE_IMAGE}:${BASE_TAG} /bin/bash
+  ${BUILD_IMAGE}:${BUILD_TAG} /bin/bash
 }
 
 function develop_application() {
@@ -190,51 +188,51 @@ function develop_application() {
   ${RELEASE_IMAGE}:${RELEASE_TAG} /bin/bash
 }
 
-function clean_javaenclave() {
-  echo "clean javaenclave"
-  pushd ${WORKDIR}
+function clean_java_enclave() {
+  echo "clean java enclave"
+  pushd "${WORKDIR}"
   # remove all files generated in building and developing.
   # remove all target dir.
   find -name target | xargs rm -rf
   # remove all .o and .so files
   find -name *.o | xargs rm -rf && find -name *.so | xargs rm -rf
   # remove release dir.
-  rm -rf ${WORKDIR}/release
+  rm -rf "${WORKDIR}"/release
   popd
 }
 
 if [ ! "$STAGE" ]; then
-  # docker build javaenclave base image.
-  # build JavaEnclave in javaenclave base image docker.
-  # test JavaEnclave unit test case in javaenclave release image docker.
-  build_javaenclave build
-  collect_javaenclave_release
-  test_javaenclave test
-  collect_javaenclave_coverage coverage
+  # docker build java enclave base image.
+  # build JavaEnclave in java enclave base image docker.
+  # test JavaEnclave unit test case in java enclave release image docker.
+  build_java_enclave build
+  collect_java_enclave_release
+  test_java_enclave test
+  collect_java_enclave_coverage coverage
 elif [ "build" = "$STAGE" ]; then
-  # docker build javaenclave base image.
-  build_javaenclave build
+  # docker build java enclave base image.
+  build_java_enclave build
 elif [ "release" = "$STAGE" ]; then
-  # docker build javaenclave release image.
-  collect_javaenclave_release
+  # docker build java enclave release image.
+  collect_java_enclave_release
 elif [ "test" = "$STAGE" ]; then
-  # test JavaEnclave unit test case in javaenclave release image docker.
-  test_javaenclave test
+  # test JavaEnclave unit test case in java enclave release image docker.
+  test_java_enclave test
 elif [ "coverage" = "$STAGE" ]; then
-  collect_javaenclave_coverage coverage
+  collect_java_enclave_coverage coverage
 elif [ "samples" = "$STAGE" ]; then
-  # run samples in javaenclave release image docker.
-  samples_javaenclave samples
+  # run samples in java enclave release image docker.
+  samples_java_enclave samples
 elif [ "benchmark" = "$STAGE" ]; then
-  # run benchmark in javaenclave release image docker.
-  benchmark_javaenclave benchmark
+  # run benchmark in java enclave release image docker.
+  benchmark_java_enclave benchmark
 elif [ "develop" = "$STAGE" ]; then
-  # enter javaenclave base image docker and develop JavaEnclave.
-  develop_javaenclave
+  # enter java enclave base image docker and develop JavaEnclave.
+  develop_java_enclave
 elif [ "develop_app" = "$STAGE" ]; then
-  # enter javaenclave release image docker and develop application.
+  # enter java enclave release image docker and develop application.
   develop_application
 elif [ "clean" = "$STAGE" ]; then
   # remove all tmp files generated in build.
-  clean_javaenclave
+  clean_java_enclave
 fi
diff --git a/tools/cicd/teesdk/build_tee_sdk.sh b/tools/cicd/anolis-8.6/teesdk/build_tee_sdk.sh
similarity index 72%
copy from tools/cicd/teesdk/build_tee_sdk.sh
copy to tools/cicd/anolis-8.6/teesdk/build_tee_sdk.sh
index d7c44cc..cf08979 100755
--- a/tools/cicd/teesdk/build_tee_sdk.sh
+++ b/tools/cicd/anolis-8.6/teesdk/build_tee_sdk.sh
@@ -20,7 +20,11 @@
 SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
 pushd "${SHELL_FOLDER}"
 
-apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y build-essential ocaml ocamlbuild automake autoconf libtool wget python libssl-dev git cmake perl unzip
+rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY*
+dnf clean all && rm -r /var/cache/dnf
+dnf group install 'Development Tools'
+dnf --enablerepo=PowerTools install -y ocaml ocaml-ocamlbuild redhat-rpm-config openssl-devel wget rpm-build git cmake perl python2 gcc-c++
+alternatives --set python /usr/bin/python2
 
 rm -rf linux-sgx
 
@@ -28,7 +32,7 @@ git clone https://github.com/intel/linux-sgx.git
 
 pushd linux-sgx && git checkout stdc_ex_1.0
 
-make preparation && cp external/toolset/ubuntu18.04/* /usr/local/bin
+make preparation && cp external/toolset/centos8/* /usr/local/bin && which ar as ld objcopy objdump ranlib
 
 make sdk && make sdk_install_pkg && popd
 
diff --git a/tools/cicd/teesdk/make.sh b/tools/cicd/anolis-8.6/teesdk/make.sh
similarity index 82%
copy from tools/cicd/teesdk/make.sh
copy to tools/cicd/anolis-8.6/teesdk/make.sh
index 3937515..ff328da 100755
--- a/tools/cicd/teesdk/make.sh
+++ b/tools/cicd/anolis-8.6/teesdk/make.sh
@@ -20,7 +20,7 @@
 SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
 pushd "${SHELL_FOLDER}"
 
-# download intel sgx sdk and build it in docker ubuntu:18.04
-docker run -i --rm --network host -v `pwd`:`pwd` ubuntu:18.04 /bin/bash "${SHELL_FOLDER}"/build_tee_sdk.sh
+# download intel sgx sdk and build it in docker anolis8.6
+docker run -i --rm --network host -v `pwd`:`pwd` openanolis/anolisos:8.6-x86_64 /bin/bash "${SHELL_FOLDER}"/build_tee_sdk.sh
 
 popd
\ No newline at end of file
diff --git a/tools/cicd/dockerfile_base b/tools/cicd/ubuntu-18.04/dockerfile_build
similarity index 96%
rename from tools/cicd/dockerfile_base
rename to tools/cicd/ubuntu-18.04/dockerfile_build
index 578edfe..e36026e 100644
--- a/tools/cicd/dockerfile_base
+++ b/tools/cicd/ubuntu-18.04/dockerfile_build
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-FROM ubuntu:18.04 as javaenclave_base
+FROM ubuntu:18.04 as java_enclave_build_ubuntu18_04
 
 LABEL maintainer="Junshao Wang"
 
diff --git a/tools/cicd/dockerfile_release b/tools/cicd/ubuntu-18.04/dockerfile_release
similarity index 91%
rename from tools/cicd/dockerfile_release
rename to tools/cicd/ubuntu-18.04/dockerfile_release
index 279d472..23b916e 100644
--- a/tools/cicd/dockerfile_release
+++ b/tools/cicd/ubuntu-18.04/dockerfile_release
@@ -15,7 +15,7 @@
 # specific language governing permissions and limitations
 # under the License.
 
-FROM javaenclave_base:v0.1.0 as javaenclave_release
+FROM java_enclave_build_ubuntu18.04:v0.1.0 as java_enclave_release_ubuntu18_04
 
 LABEL maintainer="Junshao Wang"
 
diff --git a/tools/cicd/graalvm/build_graalvm_jdk.sh b/tools/cicd/ubuntu-18.04/graalvm/build_graalvm_jdk.sh
similarity index 100%
rename from tools/cicd/graalvm/build_graalvm_jdk.sh
rename to tools/cicd/ubuntu-18.04/graalvm/build_graalvm_jdk.sh
diff --git a/tools/cicd/graalvm/make.sh b/tools/cicd/ubuntu-18.04/graalvm/make.sh
similarity index 97%
rename from tools/cicd/graalvm/make.sh
rename to tools/cicd/ubuntu-18.04/graalvm/make.sh
index adeef40..988be5f 100755
--- a/tools/cicd/graalvm/make.sh
+++ b/tools/cicd/ubuntu-18.04/graalvm/make.sh
@@ -21,6 +21,7 @@ SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
 pushd "${SHELL_FOLDER}"
 
 # download graalvm_22.2.0 and install native-image in docker ubuntu:18.04
+# shellcheck disable=SC2046
 docker run -i --rm --network host -v `pwd`:`pwd` ubuntu:18.04 /bin/bash "${SHELL_FOLDER}"/build_graalvm_jdk.sh
 
 popd
\ No newline at end of file
diff --git a/tools/cicd/make.sh b/tools/cicd/ubuntu-18.04/make.sh
similarity index 62%
rename from tools/cicd/make.sh
rename to tools/cicd/ubuntu-18.04/make.sh
index d5cd9da..9693006 100755
--- a/tools/cicd/make.sh
+++ b/tools/cicd/ubuntu-18.04/make.sh
@@ -19,22 +19,22 @@
 
 STAGE=$1
 
-BASE_IMAGE=javaenclave_base
-BASE_TAG=v0.1.0
+BUILD_IMAGE=java_enclave_build_ubuntu18.04
+BUILD_TAG=v0.1.0
 
-RELEASE_IMAGE=javaenclave_release
+RELEASE_IMAGE=java_enclave_release_ubuntu18.04
 RELEASE_TAG=v0.1.0
 
 SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
 cd "${SHELL_FOLDER}"
 
-WORKDIR=$(dirname $(dirname "$PWD"))
+WORKDIR=$(dirname $(dirname $(dirname "$PWD")))
 # Set PCCS for DCAP Remote Attestation.
 PCCS_URL='https://sgx-dcap-server.cn-beijing.aliyuncs.com/sgx/certification/v3/'
 
 function build_base_image() {
   # check base image exist or not, build it if not.
-  if [[ "$(docker images -q ${BASE_IMAGE}:${BASE_TAG} 2> /dev/null)" == "" ]]; then
+  if [[ "$(docker images -q ${BUILD_IMAGE}:${BUILD_TAG} 2> /dev/null)" == "" ]]; then
     echo "prepare for dependency"
     rm -rf tmpDownloadDir && mkdir -p tmpDownloadDir
     # download intel-sgx(branch: stdc_ex) and build it for tee sdk.
@@ -50,13 +50,13 @@ function build_base_image() {
 
     echo "build base image"
     # Build JavaEnclave Base Image.
-    docker build -t ${BASE_IMAGE}:${BASE_TAG} -f dockerfile_base .
+    docker build -t ${BUILD_IMAGE}:${BUILD_TAG} -f dockerfile_build .
     rm -rf tmpDownloadDir
   fi
 }
 
-function build_javaenclave() {
-  echo "build javaenclave"
+function build_java_enclave() {
+  echo "build java enclave in ubuntu18.04 container"
   build_base_image
   mkdir -p "${HOME}"/.m2
   docker run -i --rm --privileged --network host                    \
@@ -64,22 +64,21 @@ function build_javaenclave() {
   -v "${HOME}"/.m2:/root/.m2 -v "${WORKDIR}":"${WORKDIR}"           \
   -v /dev/sgx_enclave:/dev/sgx_enclave             \
   -v /dev/sgx_provision:/dev/sgx_provision         \
-  ${BASE_IMAGE}:${BASE_TAG} /bin/bash build.sh $1
+  ${BUILD_IMAGE}:${BUILD_TAG} /bin/bash build.sh $1
 }
 
 function build_release_image() {
   # check release image exist or not, build it if not.
   if [[ "$(docker images -q ${RELEASE_IMAGE}:${RELEASE_TAG} 2> /dev/null)" == "" ]]; then
     echo "build release image"
-    build_javaenclave
-    tar zcvf javaenclave.tar.gz -C ${WORKDIR}/release/opt javaenclave
+    tar zcvf javaenclave.tar.gz -C "${WORKDIR}"/release/opt javaenclave
     docker build -t ${RELEASE_IMAGE}:${RELEASE_TAG} -f dockerfile_release .
     rm -rf javaenclave.tar.gz
   fi
 }
 
-function test_javaenclave() {
-  echo "test javaenclave"
+function test_java_enclave() {
+  echo "test java enclave"
   build_release_image
   mkdir -p "${HOME}"/.m2
   # test JavaEnclave's unit test cases
@@ -92,7 +91,7 @@ function test_javaenclave() {
   ${RELEASE_IMAGE}:${RELEASE_TAG} /bin/bash build.sh $1
 }
 
-function collect_javaenclave_coverage() {
+function collect_java_enclave_coverage() {
   echo "collect and analysis javaenclave's test coverage"
   build_release_image
   mkdir -p "${HOME}"/.m2
@@ -106,8 +105,8 @@ function collect_javaenclave_coverage() {
   ${RELEASE_IMAGE}:${RELEASE_TAG} /bin/bash build.sh $1
 }
 
-function samples_javaenclave() {
-  echo "samples javaenclave"
+function samples_java_enclave() {
+  echo "samples java enclave"
   build_release_image
   mkdir -p "${HOME}"/.m2
   # samples JavaEnclave's samples
@@ -120,8 +119,8 @@ function samples_javaenclave() {
   ${RELEASE_IMAGE}:${RELEASE_TAG} /bin/bash build.sh $1
 }
 
-function benchmark_javaenclave() {
-  echo "benchmark javaenclave"
+function benchmark_java_enclave() {
+  echo "benchmark java enclave"
   build_release_image
   mkdir -p "${HOME}"/.m2
   # benchmark JavaEnclave
@@ -134,38 +133,38 @@ function benchmark_javaenclave() {
   ${RELEASE_IMAGE}:${RELEASE_TAG} /bin/bash build.sh $1
 }
 
-function collect_javaenclave_release() {
-  echo "collect javaenclave release"
-  mkdir -p ${WORKDIR}/release/opt/javaenclave
-  cp -r ${WORKDIR}/sdk/native/bin ${WORKDIR}/release/opt/javaenclave
-  cp -r ${WORKDIR}/sdk/native/config ${WORKDIR}/release/opt/javaenclave
-  cp -r ${WORKDIR}/sdk/native/script/build_app ${WORKDIR}/release/opt/javaenclave
-  mkdir -p ${WORKDIR}/release/opt/javaenclave/jar/sdk
-  mkdir -p ${WORKDIR}/release/opt/javaenclave/jar/sdk/host
-  mkdir -p ${WORKDIR}/release/opt/javaenclave/jar/sdk/enclave
-  mkdir -p ${WORKDIR}/release/opt/javaenclave/jar/sdk/common
-  cp -r ${WORKDIR}/sdk/pom.xml ${WORKDIR}/release/opt/javaenclave/jar/sdk
-  cp -r ${WORKDIR}/sdk/host/pom.xml ${WORKDIR}/release/opt/javaenclave/jar/sdk/host
-  cp -r ${WORKDIR}/sdk/host/target/*.jar ${WORKDIR}/release/opt/javaenclave/jar/sdk/host
-  cp -r ${WORKDIR}/sdk/enclave/pom.xml ${WORKDIR}/release/opt/javaenclave/jar/sdk/enclave
-  cp -r ${WORKDIR}/sdk/enclave/target/*.jar ${WORKDIR}/release/opt/javaenclave/jar/sdk/enclave
-  cp -r ${WORKDIR}/sdk/common/pom.xml ${WORKDIR}/release/opt/javaenclave/jar/sdk/common
-  cp -r ${WORKDIR}/sdk/common/target/*.jar ${WORKDIR}/release/opt/javaenclave/jar/sdk/common
-  mkdir -p ${WORKDIR}/release/opt/javaenclave/jar/archetype
-  cp -r ${WORKDIR}/archetype/pom.xml ${WORKDIR}/release/opt/javaenclave/jar/archetype
-  cp -r ${WORKDIR}/archetype/target/*.jar ${WORKDIR}/release/opt/javaenclave/jar/archetype
-  mkdir -p ${WORKDIR}/release/opt/javaenclave/jar/bouncycastle-native
-  cp -r ${WORKDIR}/third-party-libs/bouncycastle-native/pom.xml ${WORKDIR}/release/opt/javaenclave/jar/bouncycastle-native
-  cp -r ${WORKDIR}/third-party-libs/bouncycastle-native/target/*.jar ${WORKDIR}/release/opt/javaenclave/jar/bouncycastle-native
-  cp -r ${WORKDIR}/test ${WORKDIR}/release/opt/javaenclave/
-  cp -r ${WORKDIR}/samples ${WORKDIR}/release/opt/javaenclave/
-  cp -r ${WORKDIR}/coverage ${WORKDIR}/release/opt/javaenclave/
-  cp -r ${WORKDIR}/benchmark ${WORKDIR}/release/opt/javaenclave/
+function collect_java_enclave_release() {
+  echo "collect java enclave release"
+  mkdir -p "${WORKDIR}"/release/opt/javaenclave
+  cp -r "${WORKDIR}"/sdk/native/bin "${WORKDIR}"/release/opt/javaenclave
+  cp -r "${WORKDIR}"/sdk/native/config "${WORKDIR}"/release/opt/javaenclave
+  cp -r "${WORKDIR}"/sdk/native/script/build_app "${WORKDIR}"/release/opt/javaenclave
+  mkdir -p "${WORKDIR}"/release/opt/javaenclave/jar/sdk
+  mkdir -p "${WORKDIR}"/release/opt/javaenclave/jar/sdk/host
+  mkdir -p "${WORKDIR}"/release/opt/javaenclave/jar/sdk/enclave
+  mkdir -p "${WORKDIR}"/release/opt/javaenclave/jar/sdk/common
+  cp -r "${WORKDIR}"/sdk/pom.xml "${WORKDIR}"/release/opt/javaenclave/jar/sdk
+  cp -r "${WORKDIR}"/sdk/host/pom.xml "${WORKDIR}"/release/opt/javaenclave/jar/sdk/host
+  cp -r "${WORKDIR}"/sdk/host/target/*.jar "${WORKDIR}"/release/opt/javaenclave/jar/sdk/host
+  cp -r "${WORKDIR}"/sdk/enclave/pom.xml "${WORKDIR}"/release/opt/javaenclave/jar/sdk/enclave
+  cp -r "${WORKDIR}"/sdk/enclave/target/*.jar "${WORKDIR}"/release/opt/javaenclave/jar/sdk/enclave
+  cp -r "${WORKDIR}"/sdk/common/pom.xml "${WORKDIR}"/release/opt/javaenclave/jar/sdk/common
+  cp -r "${WORKDIR}"/sdk/common/target/*.jar "${WORKDIR}"/release/opt/javaenclave/jar/sdk/common
+  mkdir -p "${WORKDIR}"/release/opt/javaenclave/jar/archetype
+  cp -r "${WORKDIR}"/archetype/pom.xml "${WORKDIR}"/release/opt/javaenclave/jar/archetype
+  cp -r "${WORKDIR}"/archetype/target/*.jar "${WORKDIR}"/release/opt/javaenclave/jar/archetype
+  mkdir -p "${WORKDIR}"/release/opt/javaenclave/jar/bouncycastle-native
+  cp -r "${WORKDIR}"/third-party-libs/bouncycastle-native/pom.xml "${WORKDIR}"/release/opt/javaenclave/jar/bouncycastle-native
+  cp -r "${WORKDIR}"/third-party-libs/bouncycastle-native/target/*.jar "${WORKDIR}"/release/opt/javaenclave/jar/bouncycastle-native
+  cp -r "${WORKDIR}"/test "${WORKDIR}"/release/opt/javaenclave/
+  cp -r "${WORKDIR}"/samples "${WORKDIR}"/release/opt/javaenclave/
+  cp -r "${WORKDIR}"/coverage "${WORKDIR}"/release/opt/javaenclave/
+  cp -r "${WORKDIR}"/benchmark "${WORKDIR}"/release/opt/javaenclave/
   build_release_image
 }
 
-function develop_javaenclave() {
-  echo "develop javaenclave"
+function develop_java_enclave() {
+  echo "develop java enclave"
   mkdir -p "${HOME}"/.m2
   build_base_image
   docker run -it --rm --privileged --network host                   \
@@ -174,7 +173,7 @@ function develop_javaenclave() {
   -e PCCS_URL=${PCCS_URL}                                           \
   -v /dev/sgx_enclave:/dev/sgx_enclave             \
   -v /dev/sgx_provision:/dev/sgx_provision         \
-  ${BASE_IMAGE}:${BASE_TAG} /bin/bash
+  ${BUILD_IMAGE}:${BUILD_TAG} /bin/bash
 }
 
 function develop_application() {
@@ -190,51 +189,51 @@ function develop_application() {
   ${RELEASE_IMAGE}:${RELEASE_TAG} /bin/bash
 }
 
-function clean_javaenclave() {
-  echo "clean javaenclave"
-  pushd ${WORKDIR}
+function clean_java_enclave() {
+  echo "clean java enclave"
+  pushd "${WORKDIR}"
   # remove all files generated in building and developing.
   # remove all target dir.
   find -name target | xargs rm -rf
   # remove all .o and .so files
   find -name *.o | xargs rm -rf && find -name *.so | xargs rm -rf
   # remove release dir.
-  rm -rf ${WORKDIR}/release
+  rm -rf "${WORKDIR}"/release
   popd
 }
 
 if [ ! "$STAGE" ]; then
-  # docker build javaenclave base image.
-  # build JavaEnclave in javaenclave base image docker.
-  # test JavaEnclave unit test case in javaenclave release image docker.
-  build_javaenclave build
-  collect_javaenclave_release
-  test_javaenclave test
-  collect_javaenclave_coverage coverage
+  # docker build java enclave base image.
+  # build JavaEnclave in java enclave base image docker.
+  # test JavaEnclave unit test case in java enclave release image docker.
+  build_java_enclave build
+  collect_java_enclave_release
+  test_java_enclave test
+  collect_java_enclave_coverage coverage
 elif [ "build" = "$STAGE" ]; then
-  # docker build javaenclave base image.
-  build_javaenclave build
+  # docker build java enclave base image.
+  build_java_enclave build
 elif [ "release" = "$STAGE" ]; then
-  # docker build javaenclave release image.
-  collect_javaenclave_release
+  # docker build java enclave release image.
+  collect_java_enclave_release
 elif [ "test" = "$STAGE" ]; then
-  # test JavaEnclave unit test case in javaenclave release image docker.
-  test_javaenclave test
+  # test JavaEnclave unit test case in java enclave release image docker.
+  test_java_enclave test
 elif [ "coverage" = "$STAGE" ]; then
-  collect_javaenclave_coverage coverage
+  collect_java_enclave_coverage coverage
 elif [ "samples" = "$STAGE" ]; then
-  # run samples in javaenclave release image docker.
-  samples_javaenclave samples
+  # run samples in java enclave release image docker.
+  samples_java_enclave samples
 elif [ "benchmark" = "$STAGE" ]; then
-  # run benchmark in javaenclave release image docker.
-  benchmark_javaenclave benchmark
+  # run benchmark in java enclave release image docker.
+  benchmark_java_enclave benchmark
 elif [ "develop" = "$STAGE" ]; then
-  # enter javaenclave base image docker and develop JavaEnclave.
-  develop_javaenclave
+  # enter java enclave base image docker and develop JavaEnclave.
+  develop_java_enclave
 elif [ "develop_app" = "$STAGE" ]; then
-  # enter javaenclave release image docker and develop application.
+  # enter java enclave release image docker and develop application.
   develop_application
 elif [ "clean" = "$STAGE" ]; then
   # remove all tmp files generated in build.
-  clean_javaenclave
+  clean_java_enclave
 fi
diff --git a/tools/cicd/teesdk/build_tee_sdk.sh b/tools/cicd/ubuntu-18.04/teesdk/build_tee_sdk.sh
similarity index 96%
rename from tools/cicd/teesdk/build_tee_sdk.sh
rename to tools/cicd/ubuntu-18.04/teesdk/build_tee_sdk.sh
index d7c44cc..9790d6e 100755
--- a/tools/cicd/teesdk/build_tee_sdk.sh
+++ b/tools/cicd/ubuntu-18.04/teesdk/build_tee_sdk.sh
@@ -28,7 +28,7 @@ git clone https://github.com/intel/linux-sgx.git
 
 pushd linux-sgx && git checkout stdc_ex_1.0
 
-make preparation && cp external/toolset/ubuntu18.04/* /usr/local/bin
+make preparation && cp external/toolset/ubuntu18.04/* /usr/local/bin && which ar as ld objcopy objdump ranlib
 
 make sdk && make sdk_install_pkg && popd
 
diff --git a/tools/cicd/teesdk/make.sh b/tools/cicd/ubuntu-18.04/teesdk/make.sh
similarity index 93%
rename from tools/cicd/teesdk/make.sh
rename to tools/cicd/ubuntu-18.04/teesdk/make.sh
index 3937515..5376f7b 100755
--- a/tools/cicd/teesdk/make.sh
+++ b/tools/cicd/ubuntu-18.04/teesdk/make.sh
@@ -20,7 +20,7 @@
 SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)
 pushd "${SHELL_FOLDER}"
 
-# download intel sgx sdk and build it in docker ubuntu:18.04
+# download intel sgx sdk and build it in docker ubuntu18.04
 docker run -i --rm --network host -v `pwd`:`pwd` ubuntu:18.04 /bin/bash "${SHELL_FOLDER}"/build_tee_sdk.sh
 
 popd
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@teaclave.apache.org
For additional commands, e-mail: commits-help@teaclave.apache.org