-
Notifications
You must be signed in to change notification settings - Fork 46
131 lines (113 loc) · 3.65 KB
/
integration.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
---
name: Integration tests
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
test-libssh-httpd:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
test: [libssh, httpd]
name: ${{ matrix.test }}
container: fedora:latest
env:
PKCS11_MODULE: /usr/lib64/ossl-modules/pkcs11.so
steps:
- name: Get Date for DNF cache entry
id: get-date
run: |
echo "date=$(/bin/date -u "+%Y%V")" >> $GITHUB_OUTPUT
shell: bash
- name: DNF cache
uses: actions/cache@v4
with:
path: |
/var/cache/dnf
key: ${{ runner.os }}-dnf-${{ steps.get-date.outputs.date }}
- name: Install Build Requirements
run: dnf -y install gcc git meson openssl-devel
- name: Checkout Repository
uses: actions/checkout@v4
- name: Setup, Build and Install pkcs11-provider
run: |
meson setup -Dlibdir=/usr/lib64 builddir
meson compile -C builddir
meson install -C builddir
- name: Test ${{ matrix.test }} with softhsm
run: |
pushd tests/integration && bash -e ${{ matrix.test }}.sh
test-bind:
name: bind
runs-on: ubuntu-22.04
container: fedora:latest
steps:
- name: Get Date for DNF cache entry
id: get-date
run: |
echo "date=$(/bin/date -u "+%Y%V")" >> $GITHUB_OUTPUT
shell: bash
- name: DNF cache
uses: actions/cache@v4
with:
path: |
/var/cache/dnf
key: ${{ runner.os }}-dnf-${{ steps.get-date.outputs.date }}
- name: Install Dependencies
run: |
dnf -y install clang git meson cargo expect \
pkgconf-pkg-config openssl-devel openssl opensc \
p11-kit-devel p11-kit-server gnutls-utils \
gcc g++ perl-interpreter zlib-devel sqlite-devel \
httpd bind9-next softhsm \
'perl(Module::Load::Conditional)' 'perl(File::Temp)' \
'perl(IPC::Cmd)' 'perl(FindBin)' 'perl(lib)' \
'perl(File::Compare)' 'perl(File::Copy)'
- name: Checkout Repository
uses: actions/checkout@v4
- name: Get Kryoptic
id: kryoptic_setup
run: |
git clone https://github.com/latchset/kryoptic.git
cd kryoptic
git submodule update --init
echo "KRYOPTIC=${PWD}" >> "$GITHUB_OUTPUT"
- name: OpenSSL build cache
uses: actions/cache@v4
id: cache
with:
path: |
kryoptic/openssl/
key: ${{ runner.os }}-ossl-${{ hashFiles('kryoptic/.git/modules/openssl/HEAD') }}
- name: Generate lock file
run: |
cd kryoptic
cargo generate-lockfile
- name: Cache Rust dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
kryoptic/target/
key: ${{ runner.os }}-cargo-${{ hashFiles('kryoptic/**/Cargo.lock') }}
- name: Build Kryoptic
run: |
cd kryoptic
cargo build --features standard
- name: Setup, Build and Install pkcs11-provider
run: |
meson setup -Dlibdir=/usr/lib64 builddir
meson compile -C builddir
meson install -C builddir
- name: Test bind with kryoptic
env:
PKCS11_MODULE: /usr/lib64/ossl-modules/pkcs11.so
KRYOPTIC: ${{ steps.kryoptic_setup.outputs.KRYOPTIC }}
run: |
pushd tests/integration && bash -e bind.sh kryoptic ; popd