Browse Source

migrate from travis CI to GitHub actions

Signed-off-by: Steffen Jaeckel <[email protected]>
Steffen Jaeckel 3 years ago
parent
commit
cf58641c99
4 changed files with 71 additions and 115 deletions
  1. 3 3
      .ci/coverage.sh
  2. 67 0
      .github/workflows/main.yml
  3. 0 111
      .travis.yml
  4. 1 1
      makefile_include.mk

+ 3 - 3
.ci/coverage.sh

@@ -37,11 +37,11 @@ fi
 bash .ci/coverage_more.sh "$5" > test_coverage_more.txt || { rm -f testok.txt && exit 1 ; }
 
 make lcov-single
-# if this isn't run on Travis CI create coverage locally
-if [ "$TRAVIS" == "" ]; then
+# if this isn't run on CI create coverage locally
+if [ "$CI" == "" ]; then
    make lcov-html
 else
-   coveralls-lcov coverage.info
+   coveralls-lcov coverage.info --service-job-id="$GITHUB_RUN_ID" --service-name="github" --repo-token="$REPO_TOKEN" --branch="$GITHUB_REF_NAME" --service-pull-request="$PR_NUMBER"
 fi
 
 exit 0

+ 67 - 0
.github/workflows/main.yml

@@ -0,0 +1,67 @@
+name: CI
+
+on:
+  push:
+    branches:
+      - master
+      - develop
+      - /^release\/.*$/
+  pull_request:
+    branches:
+      - master
+      - develop
+      - /^release\/.*$/
+
+jobs:
+  Build:
+    runs-on: ${{ matrix.os }}
+    strategy:
+      matrix:
+        cc: [ gcc, clang ]
+        os: [ ubuntu-18.04 ]
+        config:
+          - { BUILDNAME: 'META_BUILDS',          BUILDOPTIONS: '-DGMP_DESC',                                          BUILDSCRIPT: '.ci/meta_builds.sh' }
+          - { BUILDNAME: 'VALGRIND',             BUILDOPTIONS: '',                                                    BUILDSCRIPT: '.ci/valgrind.sh' }
+          - { BUILDNAME: 'STOCK',                BUILDOPTIONS: '',                                                    BUILDSCRIPT: '.ci/run.sh' }
+          - { BUILDNAME: 'STOCK-MPI',            BUILDOPTIONS: '-ULTM_DESC -UTFM_DESC -UUSE_LTM -UUSE_TFM',           BUILDSCRIPT: '.ci/run.sh' }
+          - { BUILDNAME: 'EASY',                 BUILDOPTIONS: '-DLTC_EASY',                                          BUILDSCRIPT: '.ci/run.sh' }
+          - { BUILDNAME: 'SMALL',                BUILDOPTIONS: '-DLTC_SMALL_CODE',                                    BUILDSCRIPT: '.ci/run.sh' }
+          - { BUILDNAME: 'NOTABLES',             BUILDOPTIONS: '-DLTC_NO_TABLES',                                     BUILDSCRIPT: '.ci/run.sh' }
+          - { BUILDNAME: 'SMALL+NOTABLES',       BUILDOPTIONS: '-DLTC_SMALL_CODE -DLTC_NO_TABLES',                    BUILDSCRIPT: '.ci/run.sh' }
+          - { BUILDNAME: 'NO_FAST',              BUILDOPTIONS: '-DLTC_NO_FAST',                                       BUILDSCRIPT: '.ci/run.sh' }
+          - { BUILDNAME: 'NO_FAST+NOTABLES',     BUILDOPTIONS: '-DLTC_NO_FAST -DLTC_NO_TABLES',                       BUILDSCRIPT: '.ci/run.sh' }
+          - { BUILDNAME: 'NO_ASM',               BUILDOPTIONS: '-DLTC_NO_ASM',                                        BUILDSCRIPT: '.ci/run.sh' }
+          - { BUILDNAME: 'NO_TIMING_RESISTANCE', BUILDOPTIONS: '-DLTC_NO_ECC_TIMING_RESISTANT -DLTC_NO_RSA_BLINDING', BUILDSCRIPT: '.ci/run.sh' }
+          - { BUILDNAME: 'PTHREAD',              BUILDOPTIONS: '-DLTC_PTHREAD',                                       BUILDSCRIPT: '.ci/run.sh' }
+          - { BUILDNAME: 'STOCK+ARGTYPE=1',      BUILDOPTIONS: '-DARGTYPE=1',                                         BUILDSCRIPT: '.ci/run.sh' }
+          - { BUILDNAME: 'STOCK+ARGTYPE=2',      BUILDOPTIONS: '-DARGTYPE=2',                                         BUILDSCRIPT: '.ci/run.sh' }
+          - { BUILDNAME: 'STOCK+ARGTYPE=3',      BUILDOPTIONS: '-DARGTYPE=3',                                         BUILDSCRIPT: '.ci/run.sh' }
+          - { BUILDNAME: 'STOCK+ARGTYPE=4',      BUILDOPTIONS: '-DARGTYPE=4',                                         BUILDSCRIPT: '.ci/run.sh' }
+    steps:
+      - uses: actions/checkout@v2
+      - name: install dependencies
+        run: |
+          sudo apt-get update -qq
+          sudo apt-get install -y libtommath-dev libgmp-dev libtfm-dev valgrind libtool-bin clang-tools lcov
+          sudo gem install coveralls-lcov
+          curl -s https://packagecloud.io/install/repositories/libtom/packages/script.deb.sh | sudo bash
+          sudo apt-get install libtfm1=0.13-5ubuntu1
+      - name: run tests
+        env:
+          CC: "${{ matrix.cc }}"
+          PR_NUMBER: ${{ github.event.number }}
+          REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+        run: |
+          bash "${{ matrix.config.BUILDSCRIPT }}" "${{ matrix.config.BUILDNAME }}" "-DUSE_LTM -DLTM_DESC" "makefile V=1"        "${{ matrix.config.BUILDOPTIONS }}" "-ltommath"
+          bash "${{ matrix.config.BUILDSCRIPT }}" "${{ matrix.config.BUILDNAME }}" "-DUSE_TFM -DTFM_DESC" "makefile.shared V=1" "${{ matrix.config.BUILDOPTIONS }}" "-ltfm"
+      - name: regular logs
+        if: ${{ !failure() }}
+        run: |
+          cat gcc_1.txt
+          cat gcc_2.txt
+      - name: error logs
+        if: ${{ failure() }}
+        run: |
+          cat test_std.txt
+          cat test_err.txt
+          cat tv.txt

+ 0 - 111
.travis.yml

@@ -1,111 +0,0 @@
-dist: bionic
-sudo: required
-
-language: c
-
-before_install:
-    - sudo apt-get update -qq
-    - sudo apt-get install -y libtommath-dev libgmp-dev libtfm-dev valgrind libtool-bin
-
-before_script:
-  - gem install coveralls-lcov
-  - curl http://ftp.de.debian.org/debian/pool/main/l/lcov/lcov_1.11.orig.tar.gz | tar xz
-  - export PATH=$PATH:`pwd`/lcov-1.11/bin
-  - curl -s https://packagecloud.io/install/repositories/libtom/packages/script.deb.sh | sudo bash
-  - sudo apt-get install libtfm1=0.13-5ubuntu1
-
-matrix:
-  fast_finish: true
-branches:
-  only:
-    - master
-    - develop
-    - /^release\/.*$/
-
-compiler:
-  - gcc
-  - clang
-script:
-  - bash "${BUILDSCRIPT}" "${BUILDNAME}" "-DUSE_LTM -DLTM_DESC" "makefile V=1"        "${BUILDOPTIONS}" "-ltommath" &&
-    bash "${BUILDSCRIPT}" "${BUILDNAME}" "-DUSE_TFM -DTFM_DESC" "makefile.shared V=1" "${BUILDOPTIONS}" "-ltfm"
-env:
-  - |
-    BUILDNAME="META_BUILDS"
-    BUILDOPTIONS="-DGMP_DESC"
-    BUILDSCRIPT=".ci/meta_builds.sh"
-  - |
-    BUILDNAME="VALGRIND"
-    BUILDOPTIONS=" "
-    BUILDSCRIPT=".ci/valgrind.sh"
-  - |
-    BUILDNAME="STOCK"
-    BUILDOPTIONS=" "
-    BUILDSCRIPT=".ci/run.sh"
-  - |
-    BUILDNAME="STOCK-MPI"
-    BUILDOPTIONS="-ULTM_DESC -UTFM_DESC -UUSE_LTM -UUSE_TFM"
-    BUILDSCRIPT=".ci/run.sh"
-  - |
-    BUILDNAME="EASY"
-    BUILDOPTIONS="-DLTC_EASY"
-    BUILDSCRIPT=".ci/run.sh"
-  - |
-    BUILDNAME="SMALL"
-    BUILDOPTIONS="-DLTC_SMALL_CODE"
-    BUILDSCRIPT=".ci/run.sh"
-  - |
-    BUILDNAME="NOTABLES"
-    BUILDOPTIONS="-DLTC_NO_TABLES"
-    BUILDSCRIPT=".ci/run.sh"
-  - |
-    BUILDNAME="SMALL+NOTABLES"
-    BUILDOPTIONS="-DLTC_SMALL_CODE -DLTC_NO_TABLES"
-    BUILDSCRIPT=".ci/run.sh"
-  - |
-    BUILDNAME="NO_FAST"
-    BUILDOPTIONS="-DLTC_NO_FAST"
-    BUILDSCRIPT=".ci/run.sh"
-  - |
-    BUILDNAME="NO_FAST+NOTABLES"
-    BUILDOPTIONS="-DLTC_NO_FAST -DLTC_NO_TABLES"
-    BUILDSCRIPT=".ci/run.sh"
-  - |
-    BUILDNAME="NO_ASM"
-    BUILDOPTIONS="-DLTC_NO_ASM"
-    BUILDSCRIPT=".ci/run.sh"
-  - |
-    BUILDNAME="NO_TIMING_RESISTANCE"
-    BUILDOPTIONS="-DLTC_NO_ECC_TIMING_RESISTANT -DLTC_NO_RSA_BLINDING"
-    BUILDSCRIPT=".ci/run.sh"
-  - |
-    BUILDNAME="PTHREAD"
-    BUILDOPTIONS="-DLTC_PTHREAD"
-    BUILDSCRIPT=".ci/run.sh"
-  - |
-    BUILDNAME="STOCK+ARGTYPE=1"
-    BUILDOPTIONS="-DARGTYPE=1"
-    BUILDSCRIPT=".ci/run.sh"
-  - |
-    BUILDNAME="STOCK+ARGTYPE=2"
-    BUILDOPTIONS="-DARGTYPE=2"
-    BUILDSCRIPT=".ci/run.sh"
-  - |
-    BUILDNAME="STOCK+ARGTYPE=3"
-    BUILDOPTIONS="-DARGTYPE=3"
-    BUILDSCRIPT=".ci/run.sh"
-  - |
-    BUILDNAME="STOCK+ARGTYPE=4"
-    BUILDOPTIONS="-DARGTYPE=4"
-    BUILDSCRIPT=".ci/run.sh"
-
-after_failure:
-  - cat test_std.txt
-  - cat test_err.txt
-  - cat tv.txt
-
-after_script:
-  - cat gcc_1.txt
-  - cat gcc_2.txt
-
-notifications:
-  irc: "chat.freenode.net#libtom-notifications"

+ 1 - 1
makefile_include.mk

@@ -120,7 +120,7 @@ endif # LTC_SMALL
 
 ifneq ($(findstring clang,$(CC)),)
 LTC_CFLAGS += -Wno-typedef-redefinition -Wno-tautological-compare -Wno-builtin-requires-header
-LTC_CFLAGS += -Wno-missing-field-initializers -Wno-missing-braces
+LTC_CFLAGS += -Wno-missing-field-initializers -Wno-missing-braces -Wno-incomplete-setjmp-declaration
 endif
 ifneq ($(findstring mingw,$(CC)),)
 LTC_CFLAGS += -Wno-shadow -Wno-attributes