@@ -28,20 +28,6 @@ defaults:
2828 shell : bash
2929
3030jobs :
31- # Run test on AMD64 host
32- test-on-amd64-host :
33- uses : ./.github/workflows/reuse_test.yml
34- with :
35- runs-on : ubuntu-latest
36- container : ghcr.io/ivila/teaclave-trustzone-sdk-ci-runner:ubuntu-24.04
37-
38- # Run test on ARM64 host
39- test-on-arm64-host :
40- uses : ./.github/workflows/reuse_test.yml
41- with :
42- runs-on : ubuntu-24.04-arm
43- container : ghcr.io/ivila/teaclave-trustzone-sdk-ci-runner:ubuntu-24.04
44-
4531 # Run systest of optee_teec and build systest of optee_utee on ARM64
4632 systest :
4733 runs-on : ubuntu-24.04-arm
@@ -65,40 +51,101 @@ jobs:
6551 (cd optee-teec && cargo run -p systest)
6652 (cd optee-utee && cargo build -p systest)
6753
68- # Test build no-std examples on dev docker container
69- test-nostd-build-on-dev-docker :
54+ # Test cargo-optee build no-std examples - aarch64
55+ test-cargo-optee-nostd-aarch64 :
56+ runs-on : ubuntu-latest
57+ container :
58+ image : teaclave/teaclave-trustzone-emulator-nostd-expand-memory:latest
59+ steps :
60+ - name : Checkout repository
61+ uses : actions/checkout@v4
62+ - name : Setup environment
63+ run : |
64+ # Run entrypoint.sh to set up the bash profile
65+ /entrypoint.sh true
66+ # Install jq for JSON parsing
67+ apt-get update && apt-get install -y jq
68+ - name : Test cargo-optee no-std build (aarch64)
69+ shell : bash -l {0} # Use login shell to load the profile
70+ run : |
71+ # Build using cargo-optee tool with default aarch64 settings
72+ ./ci/build.sh
73+
74+ # Test cargo-optee build no-std examples - arm32
75+ test-cargo-optee-nostd-arm32 :
7076 runs-on : ubuntu-latest
7177 container :
72- image : teaclave/teaclave-trustzone-emulator-nostd-optee-4.7.0- expand-memory:latest
78+ image : teaclave/teaclave-trustzone-emulator-nostd-expand-memory:latest
7379 steps :
7480 - name : Checkout repository
7581 uses : actions/checkout@v4
7682 - name : Setup environment
7783 run : |
7884 # Run entrypoint.sh to set up the bash profile
7985 /entrypoint.sh true
80- - name : Build no-std and common examples
86+ # Install jq for JSON parsing
87+ apt-get update && apt-get install -y jq
88+ - name : Test cargo-optee no-std build (arm32)
8189 shell : bash -l {0} # Use login shell to load the profile
8290 run : |
83- make
91+ # Switch to ARM32 configuration and build
92+ switch_config --ta no-std/arm32 && \
93+ switch_config --host arm32 && \
94+ source ${TEACLAVE_TOOLCHAIN_BASE}/environment && \
95+ ./ci/build.sh --ta arm --ca arm
96+
97+ # Test cargo-optee build std examples - aarch64
98+ test-cargo-optee-std-aarch64 :
99+ runs-on : ubuntu-latest
100+ container :
101+ image : teaclave/teaclave-trustzone-emulator-std-expand-memory:latest
102+ steps :
103+ - name : Checkout repository
104+ uses : actions/checkout@v4
105+ - name : Setup environment
106+ run : |
107+ # Run entrypoint.sh to set up the bash profile
108+ /entrypoint.sh true
109+ # Install jq for JSON parsing
110+ apt-get update && apt-get install -y jq
111+ - name : Test cargo-optee std build (aarch64)
112+ shell : bash -l {0} # Use login shell to load the profile
113+ run : |
114+ # Link rust directory for std support
115+ ln -s $RUST_STD_DIR rust
116+ # Build using cargo-optee tool with default aarch64 std settings
117+ ./ci/build.sh --std
84118
85- # Test build std examples on dev docker container
86- test-std-build-on-dev-docker :
119+ # Test cargo-optee build std examples - arm32
120+ test-cargo-optee-std-arm32 :
87121 runs-on : ubuntu-latest
88122 container :
89- image : teaclave/teaclave-trustzone-emulator-std-optee-4.7.0- expand-memory:latest
123+ image : teaclave/teaclave-trustzone-emulator-std-expand-memory:latest
90124 steps :
91125 - name : Checkout repository
92126 uses : actions/checkout@v4
93127 - name : Setup environment
94128 run : |
95129 # Run entrypoint.sh to set up the bash profile
96130 /entrypoint.sh true
97- - name : Build no-std and common examples
131+ # Install jq for JSON parsing
132+ apt-get update && apt-get install -y jq
133+ - name : Test cargo-optee std build (arm32)
98134 shell : bash -l {0} # Use login shell to load the profile
99135 run : |
136+ # Link rust directory for std support
100137 ln -s $RUST_STD_DIR rust
101- make std-examples
138+ # Debug: Check if switch_config function exists
139+ echo "DEBUG: Checking switch_config function..."
140+ declare -f switch_config >/dev/null && echo "switch_config function EXISTS" || echo "switch_config function MISSING"
141+ type switch_config || echo "switch_config not found"
142+ # Switch to ARM32 std configuration and build
143+ switch_config --ta std/arm32 && \
144+ switch_config --host arm32 && \
145+ source ${TEACLAVE_TOOLCHAIN_BASE}/environment && \
146+ echo "DEBUG: After switch - TA_DEV_KIT_DIR=$TA_DEV_KIT_DIR" && \
147+ echo "DEBUG: After switch - OPTEE_CLIENT_EXPORT=$OPTEE_CLIENT_EXPORT" && \
148+ ./ci/build.sh --ta arm --ca arm --std
102149
103150 license :
104151 runs-on : ubuntu-latest
0 commit comments