]> www.wagner.pp.ru Git - openssl-gost/engine.git/commitdiff
CI: copy GitHub Actions files from master
authorigrkir <i.kirillov@kryptonite.ru>
Mon, 7 Jun 2021 08:07:48 +0000 (11:07 +0300)
committerDmitry Belyavskiy <beldmit@users.noreply.github.com>
Tue, 8 Jun 2021 11:28:18 +0000 (14:28 +0300)
.github/before_script.sh [new file with mode: 0755]
.github/script.sh [new file with mode: 0755]
.github/workflows/ci.yml [new file with mode: 0644]
.github/workflows/codeql-analysis.yml

diff --git a/.github/before_script.sh b/.github/before_script.sh
new file mode 100755 (executable)
index 0000000..7a86543
--- /dev/null
@@ -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 (executable)
index 0000000..dcc4ea8
--- /dev/null
@@ -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 (file)
index 0000000..2974062
--- /dev/null
@@ -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
+
index 77893f6a488aeb4c2f6be6765d1c948df8f10447..dcefc07d8d4cd04a50e519aa5f179e4e60ea20db 100644 (file)
@@ -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