X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=.github%2Fworkflows%2Ftest.yml;h=0dd0de22c4e6ac699dc15d9f044a50e8a960fa8c;hb=09dda64ce99668c918fada04b9ad6bf9cd2ab104;hp=171329c4f3a66fb3a9cc1ad24cc3aba24a19e687;hpb=0891154941b4f638b8a974ad5085e130a451ceec;p=tinc diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 171329c4..0dd0de22 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -10,16 +10,17 @@ on: jobs: cross: runs-on: ubuntu-latest - timeout-minutes: 15 + timeout-minutes: 30 strategy: fail-fast: false matrix: arch: - armhf - - mips + - mipsel + - mingw container: - image: debian:stable + image: debian:bullseye options: --privileged steps: @@ -30,26 +31,28 @@ jobs: run: HOST=${{ matrix.arch }} sh .ci/deps.sh - name: Prepare the system - run: | - sh .ci/test/prepare.sh - rm -f /dev/net/tun + run: HOST=${{ matrix.arch }} sh .ci/test/prepare.sh - name: Run tests with default settings run: sudo -u build CI=1 HOST=${{ matrix.arch }} sh .ci/test/run.sh default - name: Run tests without legacy protocol run: sudo -u build CI=1 HOST=${{ matrix.arch }} sh .ci/test/run.sh nolegacy + if: always() + + - name: Run tests with libgcrypt + run: sudo -u build CI=1 HOST=${{ matrix.arch }} sh .ci/test/run.sh gcrypt - name: Upload test results uses: actions/upload-artifact@v2 with: - name: tests_cross_${{ env.ARTIFACT }} + name: tests_cross_${{ matrix.arch }} path: /tmp/logs/tests.*.tar.gz if: always() static-analysis: runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 30 steps: - name: Checkout code uses: actions/checkout@v1 @@ -71,17 +74,12 @@ jobs: - name: Install deps run: sudo sh .ci/deps.sh - - name: Configure and compile - run: | - autoreconf -fsi - ./configure $(sh .ci/conf.sh) - - name: Run clang-tidy run: sh .ci/tidy/run.sh if: always() - name: Check code formatting - run: "! astyle -r --options=.astylerc --dry-run --formatted '*.c' '*.h' | grep '^Formatted'" + run: "! astyle --exclude=build -r --options=.astylerc --dry-run --formatted '*.c' '*.h' | grep '^Formatted'" if: always() - name: Check scripts formatting @@ -99,18 +97,18 @@ jobs: - name: Check warnings (gcc) run: bash .ci/warn/run.sh env: - CC: gcc + CC: gcc-10 if: always() - name: Check warnings (clang) run: bash .ci/warn/run.sh env: - CC: clang + CC: clang-12 if: always() sanitizer: runs-on: ubuntu-latest - timeout-minutes: 20 + timeout-minutes: 30 strategy: fail-fast: false matrix: @@ -128,29 +126,26 @@ jobs: - name: Install deps run: sudo sh .ci/deps.sh - - name: Configure and compile - shell: bash - run: bash .ci/sanitizers/build.sh - env: - CC: clang-12 + - name: Run tests with OpenSSL 3 + run: bash .ci/sanitizers/run.sh openssl3 - - name: Run tests - run: bash .ci/sanitizers/run.sh + - name: Sanitize tests with default settings + run: bash .ci/sanitizers/run.sh default - - name: Archive test results - run: sudo tar -c -z -f test-results.tar.gz test/ sanitizer/ + - name: Sanitize tests without legacy protocol + run: bash .ci/sanitizers/run.sh nolegacy if: always() - name: Upload test results uses: actions/upload-artifact@v2 with: name: tests_sanitizer_${{ matrix.sanitizer }} - path: test-results.tar.gz + path: /tmp/logs/tests.*.tar.gz if: always() linux: runs-on: ubuntu-latest - timeout-minutes: 20 + timeout-minutes: 30 strategy: fail-fast: false matrix: @@ -159,7 +154,8 @@ jobs: - centos:7 # aka RHEL 7 - almalinux:8 # aka RHEL 8 - fedora - - debian:stable + - debian:buster + - debian:bullseye - debian:testing - ubuntu # current LTS - ubuntu:rolling # latest @@ -181,11 +177,18 @@ jobs: - name: Create a non-privileged user run: sh .ci/test/prepare.sh + - name: Run tests with OpenSSL 3 + run: sudo -u build CI=1 sh .ci/test/run.sh openssl3 + - name: Run tests with default settings run: sudo -u build CI=1 sh .ci/test/run.sh default - name: Run tests without legacy protocol run: sudo -u build CI=1 sh .ci/test/run.sh nolegacy + if: always() + + - name: Run tests with libgcrypt + run: sudo -u build CI=1 sh .ci/test/run.sh gcrypt - name: Upload test results uses: actions/upload-artifact@v2 @@ -243,7 +246,7 @@ jobs: macos: runs-on: macos-latest - timeout-minutes: 15 + timeout-minutes: 20 steps: - name: Checkout code @@ -255,13 +258,12 @@ jobs: - name: Run tests with default settings run: sh .ci/test/run.sh default - - name: Run clang-tidy - run: | - export PATH="$PATH:$(brew --prefix llvm)/bin:$HOME/Library/Python/3.9/bin" - sh .ci/tidy/run.sh - - name: Run tests without legacy protocol run: sh .ci/test/run.sh nolegacy + if: always() + + - name: Run tests with libgcrypt + run: sh .ci/test/run.sh gcrypt - name: Upload test results uses: actions/upload-artifact@v2 @@ -272,7 +274,7 @@ jobs: windows: runs-on: windows-latest - timeout-minutes: 20 + timeout-minutes: 30 steps: - name: Install msys2 @@ -282,8 +284,11 @@ jobs: # https://packages.msys2.org/package/ install: >- base-devel + mingw-w64-x86_64-meson + mingw-w64-x86_64-pkgconf mingw-w64-x86_64-gcc mingw-w64-x86_64-openssl + mingw-w64-x86_64-libgcrypt mingw-w64-x86_64-zlib mingw-w64-x86_64-lzo2 mingw-w64-x86_64-lz4 @@ -291,7 +296,7 @@ jobs: mingw-w64-x86_64-miniupnpc mingw-w64-x86_64-nsis git - netcat + openbsd-netcat procps - name: Checkout code @@ -315,6 +320,11 @@ jobs: - name: Run tests without legacy protocol shell: msys2 {0} run: sh .ci/test/run.sh nolegacy + if: always() + + - name: Run tests with libgcrypt + shell: msys2 {0} + run: sh .ci/test/run.sh gcrypt - name: Upload test results uses: actions/upload-artifact@v2