Add CI with prepare script

* Only use heimdal kerberos implementation
* Fetch yubico/libfido2 (see: https://github.com/Yubico/libfido2)
* Add one target for
    * all features
    * each feature alone
    * no features
This commit is contained in:
Stefan Schindler 2020-08-05 19:00:52 +02:00
parent ea1f649046
commit 9499f2bb01
2 changed files with 89 additions and 0 deletions

51
.github/setup_ci.sh vendored Executable file
View File

@ -0,0 +1,51 @@
#!/usr/bin/env bash
TARGETS=$@
PACKAGES=""
INSTALL_FIDO_PPA="no"
#echo "Setting up for '$TARGETS'"
set -ex
lsb_release -a
for TARGET in $TARGETS; do
case $TARGET in
"")
# nothing to do
;;
"--with-kerberos5")
PACKAGES="$PACKAGES heimdal-dev"
#PACKAGES="$PACKAGES libkrb5-dev"
;;
"--with-libedit")
PACKAGES="$PACKAGES libedit-dev"
;;
"--with-pam")
PACKAGES="$PACKAGES libpam0g-dev"
;;
"--with-security-key-builtin")
INSTALL_FIDO_PPA="yes"
PACKAGES="$PACKAGES libfido2-dev libu2f-host-dev"
;;
"--with-selinux")
PACKAGES="$PACKAGES libselinux1-dev selinux-policy-dev"
;;
*) echo "Invalid option"
exit 1
;;
esac
done
if [ "yes" == "$INSTALL_FIDO_PPA" ]; then
sudo apt update -qq
sudo apt install software-properties-common
sudo apt-add-repository ppa:yubico/stable
fi
if [ "x" != "x$PACKAGES" ]; then
sudo apt update -qq
sudo apt install -qy $PACKAGES
fi

38
.github/workflows/c-cpp.yml vendored Normal file
View File

@ -0,0 +1,38 @@
name: C/C++ CI
on:
push:
branches: [ master, ci ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
configs:
- ""
- "--with-kerberos5"
- "--with-libedit"
- "--with-pam"
- "--with-security-key-builtin"
- "--with-selinux"
- "--with-kerberos5 --with-libedit --with-pam --with-security-key-builtin --with-selinux"
steps:
- uses: actions/checkout@v2
- name: setup CI system
run: ./.github/setup_ci.sh ${{ matrix.configs }}
- name: autoreconf
run: autoreconf
- name: configure
run: ./configure ${{ matrix.configs }}
- name: make
run: make
- name: make tests
run: make tests
env:
TEST_SSH_UNSAFE_PERMISSIONS: 1