]> git.ipfire.org Git - thirdparty/openssh-portable.git/commitdiff
Add CI with prepare script 198/head
authorStefan Schindler <dns2utf8@estada.ch>
Wed, 5 Aug 2020 17:00:52 +0000 (19:00 +0200)
committerStefan Schindler <dns2utf8@estada.ch>
Wed, 5 Aug 2020 22:01:41 +0000 (00:01 +0200)
* 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

.github/setup_ci.sh [new file with mode: 0755]
.github/workflows/c-cpp.yml [new file with mode: 0644]

diff --git a/.github/setup_ci.sh b/.github/setup_ci.sh
new file mode 100755 (executable)
index 0000000..237721a
--- /dev/null
@@ -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
diff --git a/.github/workflows/c-cpp.yml b/.github/workflows/c-cpp.yml
new file mode 100644 (file)
index 0000000..f18f05a
--- /dev/null
@@ -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