forked from openmls/openmls
-
Notifications
You must be signed in to change notification settings - Fork 1
139 lines (119 loc) · 4.87 KB
/
interop.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
name: Test interop between OpenMLS & MLS++
on:
push:
branches:
- main
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
interop:
runs-on: ubuntu-latest
steps:
- name: OpenMLS | Checkout
uses: actions/checkout@v4
- name: OpenMLS | Install dependencies
run: sudo apt-get -y install protobuf-compiler
- name: OpenMLS | Build
run: cargo build -p interop_client
# ---------------------------------------------------------------------------------------
#- name: MLS++ | Checkout
# run: |
# git clone https://github.com/cisco/mlspp.git
# cd mlspp
# git checkout 623acd0839d1117e8665b6bd52eecad1ce05438d
#- name: MLS++ | Install dependencies | 1/2
# uses: lukka/run-vcpkg@v11
# with:
# vcpkgDirectory: "${{ github.workspace }}/vcpkg"
# vcpkgGitCommitId: "70992f64912b9ab0e60e915ab7421faa197524b7"
# vcpkgJsonGlob: "mlspp/vcpkg.json"
# runVcpkgInstall: true
#- name: MLS++ | Install dependencies | 2/2
# uses: lukka/run-vcpkg@v11
# with:
# vcpkgDirectory: "${{ github.workspace }}/vcpkg"
# vcpkgGitCommitId: "70992f64912b9ab0e60e915ab7421faa197524b7"
# vcpkgJsonGlob: "mlspp/cmd/interop/vcpkg.json"
# runVcpkgInstall: true
#- name: MLS++ | Build | 1/2
# working-directory: mlspp
# run: |
# cmake . -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake
# make
#- name: MLS++ | Build | 2/2
# working-directory: mlspp/cmd/interop
# run: |
# cmake . -DCMAKE_TOOLCHAIN_FILE=${{ github.workspace }}/vcpkg/scripts/buildsystems/vcpkg.cmake
# make
# ---------------------------------------------------------------------------------------
- name: test-runner | Checkout
run: |
git clone https://github.com/mlswg/mls-implementations.git
cd mls-implementations
git checkout 8a6ee96bc732abca77d872babf1830ccfec7fa49
- name: test-runner | Install dependencies
run: |
sudo apt-get -y install protoc-gen-go
echo $(go env GOPATH)/bin >> $GITHUB_PATH
go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest
cd mls-implementations
go get -u google.golang.org/grpc
- name: test-runner | Build
run: |
# TODO(#1366)
cp interop_client/docker/test-runner/main.go.patch mls-implementations/interop/test-runner
cd mls-implementations/interop
go mod tidy -e
make run-go || echo "Build despite errors."
cd test-runner
# TODO(#1366)
go mod tidy -e
patch main.go main.go.patch
go build
# ---------------------------------------------------------------------------------------
# - name: Test interoperability
# run: |
# ./target/debug/interop_client&
# ./mlspp/cmd/interop/mlspp_client -live 12345&
#
# cd mls-implementations/interop
# # TODO(#1238):
# # * Add `commit.json` as soon as group context extensions proposals are supported.
# # Note: It's also possible to remove GCE proposals by hand from `commit.json`.
# # But let's not do this in CI for now and hope that it isn't needed anymore soon.
# for scenario in {welcome_join.json,external_join.json,application.json};
# do
# echo Running configs/$scenario
# errors=$(./test-runner/test-runner -fail-fast -client localhost:50051 -client localhost:12345 -config=configs/$scenario | grep error | wc -l)
# if [ "$errors" = "0" ];
# then
# echo "Success";
# else
# echo "Failed";
# exit 1;
# fi
# done
- name: Test interoperability (OpenMLS only)
run: |
./target/debug/interop_client&
cd mls-implementations/interop
# TODO(#1238):
# * Add `commit.json` as soon as group context extensions proposals are supported.
# Note: It's also possible to remove GCE proposals by hand from `commit.json`.
# But let's not do this in CI for now and hope that it isn't needed anymore soon.
for scenario in {welcome_join.json,external_join.json,application.json};
do
echo Running configs/$scenario
errors=$(./test-runner/test-runner -fail-fast -client localhost:50051 -config=configs/$scenario | grep error | wc -l)
if [ "$errors" = "0" ];
then
echo "Success";
else
echo "Failed";
exit 1;
fi
done