Skip to content

Commit

Permalink
Merge pull request #131 from SigmaGmbH/ci/test-sw
Browse files Browse the repository at this point in the history
CI run test in sim mode
  • Loading branch information
MikkySnow authored Aug 14, 2024
2 parents b880c11 + c7a3787 commit da29da2
Show file tree
Hide file tree
Showing 3 changed files with 112 additions and 0 deletions.
63 changes: 63 additions & 0 deletions .github/workflows/test-ci-sw.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
name: Test CI SW mode

on:
push:
branches: [ develop, '**-release']
workflow_dispatch:
env:
BRANCH_NAME: ${{ github.head_ref || github.ref_name }}


jobs:
test-ci-sw:
runs-on: ubuntu-22.04
env:
SGX_MODE: SW
VERSION: "1.0.4"
PRODUCTION_MODE: false
steps:
- name: Free Disk Space (Ubuntu)
uses: jlumbroso/free-disk-space@main
with:
# this might remove tools that are actually needed,
# if set to "true" but frees about 6 GB
tool-cache: false

# all of these default to true, but feel free to set to
# "false" if necessary for your workflow
android: true
dotnet: true
haskell: true
large-packages: true
docker-images: false
swap-storage: true
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Build Test Image
uses: docker/build-push-action@v4
with:
file: ./docker/test-sw.Dockerfile
context: .
load: true
tags: test-sw
cache-from: type=gha
cache-to: type=gha,mode=max
build-args: |
SGX_MODE=SW
ENCLAVE_HOME="/usr/lib/"
PRODUCTION_MODE=false
target: compile-chain
- name: Run Test Image
run: |
docker run -e CI=true -v $GITHUB_WORKSPACE/build:/build test-sw
3 changes: 3 additions & 0 deletions client/config_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@ import (
)

func TestInitConfigNonNotExistError(t *testing.T) {
if os.Getenv("CI") != "" {
t.Skip("Skipping testing in CI environment")
}
tempDir := t.TempDir()
subDir := filepath.Join(tempDir, "nonPerms")
if err := os.Mkdir(subDir, 0o600); err != nil {
Expand Down
46 changes: 46 additions & 0 deletions docker/test-sw.Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
############ Install Intel SGX SDK & SGX PSW
FROM ghcr.io/sigmagmbh/sgx:2.23-jammy-554238b AS base
RUN wget -qO - https://download.01.org/intel-sgx/sgx_repo/ubuntu/intel-sgx-deb.key | apt-key add -
RUN apt-get update


############ Compilation base
FROM base AS compile-base

RUN apt-get install -y protobuf-compiler curl

# Install rust
ENV PATH="/usr/local/go/bin:/go/bin:/root/.cargo/bin:${PATH}"
ENV GOROOT=/usr/local/go
ENV GOPATH=/go/

RUN curl https://sh.rustup.rs -sSf | bash -s -- -y > /dev/null 2>&1
RUN cargo install protobuf-codegen --version "2.8.1" -f

# Install golang
ADD https://go.dev/dl/go1.22.5.linux-amd64.tar.gz go.linux-amd64.tar.gz
RUN tar -C /usr/local -xzf go.linux-amd64.tar.gz && rm go.linux-amd64.tar.gz
RUN go install google.golang.org/protobuf/cmd/[email protected] && \
go install google.golang.org/grpc/cmd/[email protected] > /dev/null 2>&1



############ Compile enclave & chain
FROM compile-base AS compile-chain

RUN apt-get install -y automake autoconf build-essential libtool git

ARG SGX_MODE=SW
ENV SGX_MODE=${SGX_MODE}
ARG PRODUCTION_MODE=true
ENV PRODUCTION_MODE=${PRODUCTION_MODE}
ENV SGX_SDK="/opt/intel/sgxsdk"
ENV PATH="${PATH}:${SGX_SDK}/bin:${SGX_SDK}/bin/x64"
ENV PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:${SGX_SDK}/pkgconfig"
ENV LD_LIBRARY_PATH="/opt/intel/sgxsdk/sdk_libs:${LD_LIBRARY_PATH}"

COPY . /root/chain
WORKDIR /root/chain
RUN make build
RUN ./build/swisstronikd testnet init-testnet-enclave
CMD make test-all

0 comments on commit da29da2

Please sign in to comment.