Skip to content

fix linx arm detection #25

fix linx arm detection

fix linx arm detection #25

Workflow file for this run

name: CAmkES
on:
push:
workflow_dispatch:
inputs:
docker_image:
type: string
description: Docker image to fetch
default: trustworthysystems/camkes
verbose:
type: boolean
description: Enable verbose testing output
default: false
jobs:
container:
runs-on: ubuntu-latest
container:
image: ${{ inputs.docker_image != '' && inputs.docker_image || 'trustworthysystems/camkes' }}
name: 'camkes'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
path: case-examples
submodules: recursive
- name: Retrieve versions.properties
run: |
wget -q https://raw.githubusercontent.com/sireum/kekinian/master/versions.properties
- name: Cache Java
id: cache-java
uses: actions/cache@v3
with:
path: /root/kekinian/bin/linux/java
key: ${{ runner.os }}-${{ hashFiles('versions.properties') }}-java
- name: Cache Scala
id: cache-scala
uses: actions/cache@v3
with:
path: /root/kekinian/bin/scala
key: ${{ runner.os }}-${{ hashFiles('versions.properties') }}-scala
- name: Cache Coursier
id: cache-coursier
uses: actions/cache@v3
with:
path: /root/cache/coursier
key: ${{ runner.os }}-${{ hashFiles('versions.properties') }}-coursier
- name: Cache OSATE
id: cache-osate
uses: actions/cache@v3
with:
path: /root/kekinian/bin/linux/osate
key: ${{ runner.os }}-${{ hashFiles('jvm/src/main/resources/phantom_versions.properties') }}-osate
- name: Build
env:
# add verbose flag if workflow is restarted with "enable debug logging" checked or if requested
# via workflow dispatch
VERBOSE_DEBUG: ${{ ( runner.debug == '1' || inputs.verbose == '1' ) && ',verbose' || '' }}
run: |
# github sets HOME to /github/home but some tools (Sireum's Os.home, Haskell) use
# the containers /root instead leading to inconsistent installs. Setting HOME
# to be root resolves the issue
# https://github.com/actions/runner/issues/1474#issuecomment-965805123
export HOME=/root
mv ./case-examples /root/
export aptInstall="apt-get install -f -y --no-install-recommends"
export DEBIAN_FRONTEND=noninteractive
apt-get update
${aptInstall} p7zip-full
# Installing emacs installs some package(s) that resolve an issue where
# the OSATE gumbo parser fails to initialize when used in the docker container.
${aptInstall} emacs
mkdir -p $HOME/.ssh
touch $HOME/.ssh/config
chmod 700 $HOME/.ssh/config
(echo "Host gitlab.adventium.com"; echo "StrictHostKeyChecking no") >> $HOME/.ssh/config
export CASE_DIR=$HOME/CASE
mkdir -p $CASE_DIR/camkes
cd $CASE_DIR/camkes
repo init -u https://github.com/seL4/camkes-manifest.git
repo sync
mkdir -p $CASE_DIR/camkes-vm-examples
cd $CASE_DIR/camkes-vm-examples
repo init -u https://github.com/seL4/camkes-vm-examples-manifest.git
repo sync
cd $HOME
git clone --rec https://github.com/sireum/kekinian.git
kekinian/bin/build.cmd setup
export SIREUM_HOME=$HOME/kekinian
export PATH=$SIREUM_HOME/bin:$PATH
export OSATE_HOME=$SIREUM_HOME/bin/linux/osate
sireum hamr phantom -u -o $OSATE_HOME
$HOME/case-examples/.ci/test.cmd