Skip to content

Add std-only examples and polish doc for main #290

Add std-only examples and polish doc for main

Add std-only examples and polish doc for main #290

Workflow file for this run

# 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.
name: CI
on: [push, pull_request]
defaults:
run:
shell: bash
jobs:
build-utee-teec:
runs-on: ubuntu-latest
container: teaclave/teaclave-trustzone-sdk-build:0.3.0
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setting up $HOME
run: |
cp /root/.bashrc $HOME/.bashrc &&
ln -sf /root/.rustup ~/.rustup &&
ln -sf /root/.cargo ~/.cargo
- name: Building
run: |
# Setup Rust and toolchains
./setup.sh
# Build optee_os and optee_client for qemu_v8
./build_optee_libraries.sh $HOME
# Setup environment
export OPTEE_DIR=$HOME
source environment
# Build Rust optee-utee and optee-teec
(cd optee-utee && cargo build --target aarch64-unknown-linux-gnu -vv)
(cd optee-teec && cargo build --target aarch64-unknown-linux-gnu -vv)
build-and-test-examples:
runs-on: ubuntu-latest
container: teaclave/teaclave-trustzone-sdk-build:0.3.0
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setting up $HOME
run: |
cp /root/.bashrc $HOME/.bashrc &&
ln -sf /root/.rustup ~/.rustup &&
ln -sf /root/.cargo ~/.cargo
- name: Building
run: |
# Setup Rust and toolchains
./setup.sh
# Build optee_os and optee_client for qemu_v8
./build_optee_libraries.sh $HOME
export OPTEE_DIR=$HOME
# Build OP-TEE Rust examples for Arm 32-bit both host and TA
export ARCH_HOST=arm
export ARCH_TA=arm
source environment
make -j`nproc`
# Build OP-TEE Rust examples for Arm 32-bit host and 64-bit TA
export ARCH_HOST=arm
unset ARCH_TA
source environment
make clean && make -j`nproc`
# Build OP-TEE Rust examples for Arm 64-bit host and 32-bit TA
unset ARCH_HOST
export ARCH_TA=arm
source environment
make clean && make -j`nproc`
# Build OP-TEE Rust examples for Arm 64-bit both host and TA
unset ARCH_TA
unset ARCH_HOST
source environment
make clean && make -j`nproc`
- name: Run tests for Arm 64-bit both host and TA
run: |
apt update && apt install libslirp-dev -y
source environment
(cd ci && ./ci.sh)
build-and-test-examples-for-64bit-std-TAs:
runs-on: ubuntu-latest
container: teaclave/teaclave-trustzone-sdk-build:0.3.0
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setting up $HOME
run: |
cp /root/.bashrc $HOME/.bashrc &&
ln -sf /root/.rustup ~/.rustup &&
ln -sf /root/.cargo ~/.cargo
- name: Building Arm 64-bit both host and TA (with STD enabled)
run: |
# Setup Rust and toolchains
./setup.sh
# Setup std dependencies
./setup_std_dependencies.sh
# Build optee_os and optee_client for qemu_v8
./build_optee_libraries.sh $HOME
# Setup environment
export OPTEE_DIR=$HOME
export STD=y
source environment
# Build OP-TEE Rust examples for Arm 64-bit both host and TA
make -j`nproc`
- name: Run tests for Arm 64-bit both host and TA
run: |
apt update && apt install libslirp-dev -y
export STD=y
source environment
(cd ci && ./ci.sh)
build-and-test-examples-for-32bit-std-TAs:
runs-on: ubuntu-latest
container: teaclave/teaclave-trustzone-sdk-build:0.3.0
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Setting up $HOME
run: |
cp /root/.bashrc $HOME/.bashrc &&
ln -sf /root/.rustup ~/.rustup &&
ln -sf /root/.cargo ~/.cargo
- name: Building Arm 64-bit both host and TA (with STD enabled)
run: |
# Setup Rust and toolchains
./setup.sh
# Setup std dependencies
./setup_std_dependencies.sh
# Build optee_os and optee_client for qemu_v8
./build_optee_libraries.sh $HOME
# Setup environment
export OPTEE_DIR=$HOME
export ARCH_TA=arm
export STD=y
source environment
# Build OP-TEE Rust examples for Arm 64-bit both host and TA
make -j`nproc`
- name: Run tests for Arm 32-bit both host and TA
run: |
apt update && apt install libslirp-dev -y
export ARCH_TA=arm
export STD=y
source environment
(cd ci && ./ci.sh)
OPTEE-repo-build-and-run-examples-64bit-TAs:
runs-on: ubuntu-latest
container: teaclave/teaclave-trustzone-sdk-build:0.3.0
steps:
- name: Remove /__t/*
run: rm -rf /__t/*
- name: Checkout repository
uses: actions/checkout@v2
with:
submodules: recursive
path: 'incubator-teaclave-trustzone-sdk'
- name: Checkout OP-TEE repository
run: |
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo-1 > ~/bin/repo && chmod a+x ~/bin/repo
export PATH=~/bin:$PATH
mkdir -p ~/optee-qemuv8 && cd ~/optee-qemuv8 &&
repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml &&
repo sync -j4 --no-clone-bundle
- name: Build images and run tests
run: |
apt update && apt install libslirp-dev -y
cd ~/optee-qemuv8
# fixed the error: configure: error: you should not run configure as root:
export FORCE_UNSAFE_CONFIGURE=1
rm -rf optee_rust/ &&
mv $GITHUB_WORKSPACE/incubator-teaclave-trustzone-sdk optee_rust/
cd build &&
make -j3 toolchains &&
make -j`nproc` RUST_ENABLE=y check
OPTEE-repo-build-and-run-examples-32bit-TAs:
runs-on: ubuntu-latest
container: teaclave/teaclave-trustzone-sdk-build:0.3.0
steps:
- name: Remove /__t/*
run: rm -rf /__t/*
- name: Checkout repository
uses: actions/checkout@v2
with:
submodules: recursive
path: 'incubator-teaclave-trustzone-sdk'
- name: Checkout OP-TEE repository
run: |
mkdir -p ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo-1 > ~/bin/repo && chmod a+x ~/bin/repo
export PATH=~/bin:$PATH
mkdir -p ~/optee-qemuv8 && cd ~/optee-qemuv8 &&
repo init -u https://github.com/OP-TEE/manifest.git -m qemu_v8.xml &&
repo sync -j4 --no-clone-bundle
- name: Build images and run tests
run: |
apt update && apt install libslirp-dev -y
cd ~/optee-qemuv8
# fixed the error: configure: error: you should not run configure as root:
export FORCE_UNSAFE_CONFIGURE=1
rm -rf optee_rust/ &&
mv $GITHUB_WORKSPACE/incubator-teaclave-trustzone-sdk optee_rust/
cd build &&
make -j3 toolchains &&
make -j`nproc` RUST_ENABLE=y COMPILE_S_USER=32 check
license:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Check License Header
uses: apache/skywalking-eyes/header@501a28d2fb4a9b962661987e50cf0219631b32ff