blob: e6d56855791582d7b67f648318bbc510e57e5d01 [file] [log] [blame]
name: run example (sim only) # TODO: add custom runner
on:
push:
branches: [ '**' ]
pull_request:
branches: [ '**' ]
schedule: [cron: "40 1 * * *"]
jobs:
single-test:
strategy:
matrix:
runs-on:
- ubuntu-18.04
image:
- "baiduxlab/sgx-rust:1804-1.1.4"
- "baiduxlab/sgx-rust:2004-1.1.4"
- "baiduxlab/sgx-rust:centos8-1.1.4"
single-sample:
- "backtrace"
- "crypto"
- "file"
- "hello-regex"
- "hello-rust"
- "hello-rust-vscode-debug"
- "helloworld"
- "http_req"
- "kvdb-memdb"
- "localattestation"
- "logger"
- "machine-learning"
- "prost-protobuf"
- "protobuf"
- "sealeddata"
- "secretsharing"
- "serialize"
- "sgx-cov"
- "switchless"
- "tcmalloc"
- "thread"
- "unit-test"
- "wasmi"
- "zlib-lazy-static-sample"
runs-on: ${{ matrix.runs-on }}
container:
image: ${{ matrix.image }}
steps:
- uses: actions/checkout@v1
with:
submodules: 'true'
- name: Set up Github Actions' $HOME
run: |
cp /root/.bashrc $HOME/.bashrc &&
ln -sf /root/.rustup ~/.rustup &&
ln -sf /root/.cargo ~/.cargo
- name: Rust toolchains
run: |
. ~/.cargo/env &&
rustc --version &&
rustup --version &&
cargo --version
shell: bash
- name: Run tests
run: |
. ~/.cargo/env &&
. /opt/sgxsdk/environment &&
export SGX_SDK_RUST=`git worktree list | head | cut -d ' ' -f 1` &&
cd samplecode/${{ matrix.single-sample }} &&
if [ "${{ matrix.single-sample }}" == "protobuf" ]; then cargo install protobuf-codegen --vers=2.8.1; fi
SGX_MODE=SW make &&
cd bin &&
./app
shell: bash
tls-test:
strategy:
matrix:
runs-on:
- ubuntu-18.04
image:
- "baiduxlab/sgx-rust:1804-1.1.4"
- "baiduxlab/sgx-rust:2004-1.1.4"
- "baiduxlab/sgx-rust:centos8-1.1.4"
runs-on: ${{ matrix.runs-on }}
container:
image: ${{ matrix.image }}
steps:
- uses: actions/checkout@v1
with:
submodules: 'true'
- name: Set up Github Actions' $HOME
run: |
cp /root/.bashrc $HOME/.bashrc &&
ln -sf /root/.rustup ~/.rustup &&
ln -sf /root/.cargo ~/.cargo &&
yum install -y which expect || true
- name: Rust toolchains
run: |
. ~/.cargo/env &&
rustc --version &&
rustup --version &&
cargo --version
shell: bash
- name: Run tls sample
run: |
. ~/.cargo/env &&
. /opt/sgxsdk/environment &&
export SGX_MODE=SW
SAVEIFS=$IFS
CIDIR=$(pwd)/.github/workflows
IFS=$(echo -en "\n\b")
compiles=('make' 'XARGO_SGX=1 make')
cd samplecode/tls
for client in ${compiles[@]}
do
for server in ${compiles[@]}
do
cd tlsclient && eval ${client} && \
cd ../tlsserver && eval ${server} && \
cd bin
echo "Starting server"
$CIDIR/tlsserver.expect &
pid=$!
sleep 1
cd ../../tlsclient/bin
echo "Starting client"
$CIDIR/tlsclient.expect
cliret=$?
wait $pid
svrret=$?
if [ ! $cliret -eq 0 ] | [ ! $svrret -eq 0 ]; then
echo "TLS test fail"
exit 1
fi
echo "Testing passed"
cd ../..
done
done
IFS=$SAVEIFS
shell: bash
mio-test:
strategy:
matrix:
runs-on:
- ubuntu-18.04
image:
- "baiduxlab/sgx-rust:1804-1.1.4"
- "baiduxlab/sgx-rust:2004-1.1.4"
- "baiduxlab/sgx-rust:centos8-1.1.4"
runs-on: ${{ matrix.runs-on }}
container:
image: ${{ matrix.image }}
steps:
- uses: actions/checkout@v1
with:
submodules: 'true'
- name: Set up Github Actions' $HOME
run: |
cp /root/.bashrc $HOME/.bashrc &&
ln -sf /root/.rustup ~/.rustup &&
ln -sf /root/.cargo ~/.cargo &&
yum install -y which expect || true
- name: Rust toolchains
run: |
. ~/.cargo/env &&
rustc --version &&
rustup --version &&
cargo --version
shell: bash
- name: Run tls sample
run: |
. ~/.cargo/env &&
. /opt/sgxsdk/environment &&
export SGX_MODE=SW
SAVEIFS=$IFS
CIDIR=$(pwd)/.github/workflows
IFS=$(echo -en "\n\b")
compiles=('make' 'XARGO_SGX=1 make')
cd samplecode/mio
for client in ${compiles[@]}
do
for server in ${compiles[@]}
do
cd client && eval ${client} && \
cd ../server && eval ${server} && \
cd bin
echo "Starting server"
$CIDIR/mioserver.expect &
pid=$!
sleep 1
cd ../../client/bin
echo "Starting client"
$CIDIR/mioclient.expect
cliret=$?
wait $pid
svrret=$?
if [ ! $cliret -eq 0 ] | [ ! $svrret -eq 0 ]; then
echo "mio test fail"
exit 1
fi
echo "Testing passed"
cd ../..
done
done
IFS=$SAVEIFS
shell: bash