--- /dev/null
+#!/bin/bash -efux
+
+curl -L https://cpanmin.us | sudo perl - --sudo App::cpanminus
+sudo cpanm --notest Test2::V0 > build.log 2>&1 || (cat build.log && exit 1)
+
+if [ "${APT_INSTALL-}" ]; then
+ sudo apt-get install -y $APT_INSTALL
+fi
+
+git clone --depth 1 -b $OPENSSL_BRANCH https://github.com/openssl/openssl.git
+cd openssl
+git describe --always --long
+
+PREFIX=$HOME/opt
+
+${SETARCH-} ./config shared -d --prefix=$PREFIX --openssldir=$PREFIX -Wl,-rpath=$PREFIX/lib
+${SETARCH-} make -s -j$(nproc) build_libs
+${SETARCH-} make -s -j$(nproc) build_programs
+make -s install_sw
--- /dev/null
+#!/bin/bash -efux
+
+PREFIX=$HOME/opt
+PATH=$PREFIX/bin:$PATH
+
+mkdir build
+cd build
+cmake -DOPENSSL_ROOT_DIR=$PREFIX -DOPENSSL_LIBRARIES=$PREFIX/lib -DOPENSSL_ENGINES_DIR=$PREFIX/engines ${ASAN-} ..
+make
+make test CTEST_OUTPUT_ON_FAILURE=1
+if [ -z "${ASAN-}" ]; then
+ make tcl_tests
+fi
--- /dev/null
+name: CI
+on: [push, pull_request]
+
+env:
+ OPENSSL_BRANCH: openssl-3.0.0-alpha8
+
+jobs:
+ gcc-openssl-stable:
+ runs-on: ubuntu-20.04
+ steps:
+ - uses: actions/checkout@v2
+ - run: .github/before_script.sh
+ - run: .github/script.sh
+
+ clang-openssl-stable:
+ runs-on: ubuntu-20.04
+ env:
+ CC: clang
+ steps:
+ - uses: actions/checkout@v2
+ - run: .github/before_script.sh
+ - run: .github/script.sh
+
+ gcc-openssl-master:
+ runs-on: ubuntu-20.04
+ env:
+ OPENSSL_BRANCH: master
+ steps:
+ - uses: actions/checkout@v2
+ - run: .github/before_script.sh
+ - run: .github/script.sh
+
+ gcc-asan-openssl-master:
+ runs-on: ubuntu-20.04
+ env:
+ OPENSSL_BRANCH: master
+ ASAN: -DASAN=1
+ steps:
+ - uses: actions/checkout@v2
+ - run: .github/before_script.sh
+ - run: .github/script.sh
+
+ gcc-openssl-stable-x86:
+ runs-on: ubuntu-20.04
+ env:
+ CFLAGS: -m32
+ LDFLAGS: -m32
+ SETARCH: "setarch i386"
+ APT_INSTALL: gcc-multilib
+ steps:
+ - uses: actions/checkout@v2
+ - run: .github/before_script.sh
+ - run: .github/script.sh
+