Skip to content

Commit e022984

Browse files
authored
github ci: add sematest and tutorial (#261)
This also adds - A new HOLLIGHT_COMMIT variable for easier configuration - Combine variants of existing test and aws-lc integration tests with matrix
1 parent 57fb6be commit e022984

File tree

1 file changed

+70
-45
lines changed

1 file changed

+70
-45
lines changed

.github/workflows/ci.yml

Lines changed: 70 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,16 @@ on:
44
pull_request:
55
branches: [ main ]
66

7+
env:
8+
HOLLIGHT_COMMIT: "157c99b7bb3a485116dc2bfc4ef3ad00912d883b"
9+
710
jobs:
8-
s2n-bignum-arm-tests:
9-
runs-on: ubuntu-24.04-arm
11+
s2n-bignum-tests:
12+
strategy:
13+
matrix:
14+
arch: [arm, x86]
15+
16+
runs-on: ${{ matrix.arch == 'arm' && 'ubuntu-24.04-arm' || matrix.arch == 'x86' && 'ubuntu-24.04' }}
1017

1118
steps:
1219
- name: Checkout code
@@ -19,8 +26,9 @@ jobs:
1926
2027
- name: Run tests
2128
run: |
22-
cd arm
29+
cd ${{ matrix.arch }}
2330
make
31+
${{ matrix.arch == 'x86' && 'cd ../x86_att && make clobber && make && git diff --exit-code .' || true}}
2432
echo "Make test"
2533
cd ../tests
2634
CC=gcc make complete
@@ -37,8 +45,12 @@ jobs:
3745
make clean
3846
CC=clang make
3947
40-
s2n-bignum-arm-aws-lc-integration:
41-
runs-on: ubuntu-24.04-arm
48+
s2n-bignum-aws-lc-integration:
49+
strategy:
50+
matrix:
51+
arch: [arm, x86]
52+
53+
runs-on: ${{ matrix.arch == 'arm' && 'ubuntu-24.04-arm' || matrix.arch == 'x86' && 'ubuntu-24.04' }}
4254

4355
steps:
4456
- name: Checkout code
@@ -67,8 +79,12 @@ jobs:
6779
cmake3 -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DFIPS=Off ../aws-lc
6880
ninja-build run_tests
6981
70-
s2n-bignum-x86-tests:
71-
runs-on: ubuntu-24.04
82+
s2n-bignum-sematest:
83+
strategy:
84+
matrix:
85+
arch: [arm, x86]
86+
87+
runs-on: ${{ matrix.arch == 'arm' && 'ubuntu-24.04-arm' || matrix.arch == 'x86' && 'ubuntu-24.04' }}
7288

7389
steps:
7490
- name: Checkout code
@@ -77,31 +93,36 @@ jobs:
7793
- name: Install dependent packages
7894
run: |
7995
sudo apt update
80-
sudo apt install valgrind
96+
sudo apt install libpcre2-dev ocaml libstring-shellquote-perl libgmp-dev xdot
97+
wget https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh
98+
chmod +x install.sh
99+
echo "/usr/local/bin" | sh ./install.sh
100+
opam init --disable-sandboxing
101+
102+
- name: Install HOL Light
103+
run: |
104+
git clone https://github.com/jrh13/hol-light.git
105+
cd hol-light
106+
git checkout ${{ env.HOLLIGHT_COMMIT }}
107+
make switch-5
108+
eval $(opam env)
109+
echo $(ocamlc -version)
110+
echo $(camlp5 -v)
111+
HOLLIGHT_USE_MODULE=1 make
112+
cd ..
81113
82114
- name: Run tests
83115
run: |
84-
cd x86
85-
make
86-
cd ../x86_att && make clobber && make && git diff --exit-code .
87-
echo "Make test (build only, for clang)"
88-
cd ../tests
89-
CC=gcc make complete
90-
make ctCheck
91-
echo "Make test with valgrind"
92-
make clean
93-
CC=gcc VALGRIND="valgrind --" make complete || echo "(incomplete test, but proceeding)"
94-
echo "Make test (clang, build only)"
95-
make clean
96-
CC=clang make
97-
echo "Make benchmark (build only, for both of those)"
98-
cd ../benchmarks
99-
CC=gcc make
100-
make clean
101-
CC=clang make
116+
export HOLDIR=`pwd`/hol-light
117+
cd ${{ matrix.arch }}
118+
make sematest
119+
120+
s2n-bignum-tutorial:
121+
strategy:
122+
matrix:
123+
arch: [arm, x86]
102124

103-
s2n-bignum-x86-aws-lc-integration:
104-
runs-on: ubuntu-24.04
125+
runs-on: ${{ matrix.arch == 'arm' && 'ubuntu-24.04-arm' || matrix.arch == 'x86' && 'ubuntu-24.04' }}
105126

106127
steps:
107128
- name: Checkout code
@@ -110,22 +131,26 @@ jobs:
110131
- name: Install dependent packages
111132
run: |
112133
sudo apt update
113-
sudo apt install valgrind cmake golang ninja-build
114-
which ninja
115-
sudo ln -s /usr/bin/ninja /usr/bin/ninja-build
116-
which cmake
117-
ln -s /usr/local/bin/cmake /usr/local/bin/cmake3
134+
sudo apt install libpcre2-dev ocaml libstring-shellquote-perl libgmp-dev xdot
135+
wget https://raw.githubusercontent.com/ocaml/opam/master/shell/install.sh
136+
chmod +x install.sh
137+
echo "/usr/local/bin" | sh ./install.sh
138+
opam init --disable-sandboxing
118139
119-
- name: Run tests
140+
- name: Install HOL Light
120141
run: |
121-
echo "Run AWS-LC integration test (GITHUB_REPOSITORY: ${{ github.event.pull_request.head.repo.full_name }}, GITHUB_TARGET: $GITHUB_HEAD_REF)"
122-
git clone https://github.com/aws/aws-lc.git --depth=1
123-
cd aws-lc/third_party/s2n-bignum
124-
rm -rf ./s2n-bignum-imported
125-
GITHUB_REPOSITORY=${{ github.event.pull_request.head.repo.full_name }}.git GITHUB_TARGET=$GITHUB_HEAD_REF ./import.sh
126-
cd ../../../
127-
mkdir aws-lc-build && cd aws-lc-build
128-
cmake3 -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DFIPS=On ../aws-lc
129-
ninja-build run_tests
130-
cmake3 -GNinja -DCMAKE_BUILD_TYPE=RelWithDebInfo -DFIPS=Off ../aws-lc
131-
ninja-build run_tests
142+
git clone https://github.com/jrh13/hol-light.git
143+
cd hol-light
144+
git checkout ${{ env.HOLLIGHT_COMMIT }}
145+
make switch-5
146+
eval $(opam env)
147+
echo $(ocamlc -version)
148+
echo $(camlp5 -v)
149+
HOLLIGHT_USE_MODULE=1 make
150+
cd ..
151+
152+
- name: Run tutorial
153+
run: |
154+
export HOLDIR=`pwd`/hol-light
155+
cd ${{ matrix.arch }}
156+
make tutorial

0 commit comments

Comments
 (0)