From b441d92094fd48d564bae043c0db3d5c84a504fd Mon Sep 17 00:00:00 2001 From: igrkir Date: Mon, 7 Jun 2021 11:07:48 +0300 Subject: [PATCH] CI: copy GitHub Actions files from master --- .github/before_script.sh | 19 +++++++ .github/script.sh | 13 +++++ .github/workflows/ci.yml | 82 +++++++++++++++++++++++++++ .github/workflows/codeql-analysis.yml | 34 +++++++++-- 4 files changed, 142 insertions(+), 6 deletions(-) create mode 100755 .github/before_script.sh create mode 100755 .github/script.sh create mode 100644 .github/workflows/ci.yml diff --git a/.github/before_script.sh b/.github/before_script.sh new file mode 100755 index 0000000..7a86543 --- /dev/null +++ b/.github/before_script.sh @@ -0,0 +1,19 @@ +#!/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 diff --git a/.github/script.sh b/.github/script.sh new file mode 100755 index 0000000..dcc4ea8 --- /dev/null +++ b/.github/script.sh @@ -0,0 +1,13 @@ +#!/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 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..2974062 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,82 @@ +name: CI +on: [push, pull_request] + +env: + OPENSSL_BRANCH: openssl-3.0.0-alpha17 + +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 + + macos-asan-openssl-master: + runs-on: macos-latest + env: + OPENSSL_BRANCH: master + ASAN: -DASAN=1 + steps: + - name: install cpanm and Test2::V0 + uses: perl-actions/install-with-cpanm@v1 + with: + install: Test2::V0 + - name: Checkout gost-engine + uses: actions/checkout@v2 + - name: checkout OpenSSL + uses: actions/checkout@v2 + with: + repository: openssl/openssl + ref: master + path: openssl + - name: configure OpenSSL + run: | + mkdir $HOME/opt + ./Configure --prefix=$HOME/opt + working-directory: openssl + - name: build+install OpenSSL + run: make -s install_sw + working-directory: openssl + - 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 + diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml index 77893f6..dcefc07 100644 --- a/.github/workflows/codeql-analysis.yml +++ b/.github/workflows/codeql-analysis.yml @@ -1,5 +1,11 @@ name: "CodeQL" +env: + OPENSSL_BRANCH: openssl-3.0.0-alpha17 + #RPATH: "-Wl,-rpath=${PREFIX}/lib" + #PREFIX: ${HOME}/opt + #PATH: ${PREFIX}/bin:${PATH} + on: push: branches: [master, ] @@ -30,14 +36,14 @@ jobs: # Initializes the CodeQL tools for scanning. - name: Initialize CodeQL uses: github/codeql-action/init@v1 + # languages: cpp # Override language selection by uncommenting this and choosing your languages # with: - # languages: go, javascript, csharp, python, cpp, java # Autobuild attempts to build any compiled languages (C/C++, C#, or Java). # If this step fails, then you should remove it and run the build manually (see below) - - name: Autobuild - uses: github/codeql-action/autobuild@v1 + #- name: Autobuild + # uses: github/codeql-action/autobuild@v1 # ℹ️ Command-line programs to run using the OS shell. # 📚 https://git.io/JvXDl @@ -46,9 +52,25 @@ jobs: # and modify them (or add more) to build your code if your project # uses a compiled language - #- run: | - # make bootstrap - # make release + - run: | + 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 + export PREFIX=`pwd`/opt + export RPATH="-Wl,-rpath=${PREFIX}/lib" + cd openssl + git describe --always --long + ./config shared -d --prefix=${PREFIX} --openssldir=${PREFIX} ${RPATH} + make -s build_libs + make -s build_programs + make -s install_sw + cd .. + set -e + mkdir build + cd build + cmake -DOPENSSL_ROOT_DIR=${PREFIX} -DOPENSSL_LIBRARIES=${PREFIX}/lib -DOPENSSL_ENGINES_DIR=${PREFIX}/engines ${ASAN} .. + make - name: Perform CodeQL Analysis uses: github/codeql-action/analyze@v1 -- 2.39.5