X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=.github%2Fworkflows%2Ftest.yml;h=27f364b002ac06668e22715874d18d3e767f0b45;hb=dff94d1df4228386ea9f523b1bfc37590ca31fd8;hp=3961cae216a676f8337d730527d960441cdadd24;hpb=53b239863ea0a44270d877945fa2014ec626ad01;p=tinc diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3961cae2..27f364b0 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -17,6 +17,7 @@ jobs: arch: - armhf - mipsel + - mingw container: image: debian:bullseye @@ -30,10 +31,7 @@ jobs: run: HOST=${{ matrix.arch }} sh .ci/deps.sh - name: Prepare the system - run: | - sh .ci/test/prepare.sh - update-binfmts --enable - 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 @@ -54,7 +52,7 @@ jobs: static-analysis: runs-on: ubuntu-latest - timeout-minutes: 10 + timeout-minutes: 30 steps: - name: Checkout code uses: actions/checkout@v1 @@ -76,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 @@ -104,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: @@ -133,6 +126,9 @@ jobs: - name: Install deps run: sudo sh .ci/deps.sh + - name: Run tests with OpenSSL 3 + run: bash .ci/sanitizers/run.sh openssl3 + - name: Sanitize tests with default settings run: bash .ci/sanitizers/run.sh default @@ -143,13 +139,13 @@ jobs: - name: Upload test results uses: actions/upload-artifact@v2 with: - name: tests_${{ env.ARTIFACT }} + name: tests_sanitizer_${{ matrix.sanitizer }} path: /tmp/logs/tests.*.tar.gz if: always() linux: runs-on: ubuntu-latest - timeout-minutes: 20 + timeout-minutes: 30 strategy: fail-fast: false matrix: @@ -181,6 +177,9 @@ 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 @@ -215,7 +214,7 @@ jobs: runs-on: ubuntu-latest needs: - linux - - windows + - mingw steps: - name: Create artifact directory @@ -259,11 +258,6 @@ 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() @@ -278,7 +272,7 @@ jobs: path: /tmp/logs/tests.*.tar.gz if: always() - windows: + mingw: runs-on: windows-latest timeout-minutes: 30 @@ -290,6 +284,8 @@ 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 @@ -300,7 +296,7 @@ jobs: mingw-w64-x86_64-miniupnpc mingw-w64-x86_64-nsis git - netcat + openbsd-netcat procps - name: Checkout code @@ -336,3 +332,41 @@ jobs: name: tests_windows path: /tmp/logs/tests.*.tar.gz if: always() + + msvc: + runs-on: windows-latest + timeout-minutes: 30 + + strategy: + fail-fast: false + matrix: + arch: + - amd64 + - amd64_x86 + + steps: + - name: Install meson + run: pip3 install meson + + - name: Checkout code + uses: actions/checkout@v1 + + - name: Activate dev environment + uses: ilammy/msvc-dev-cmd@v1 + with: + arch: ${{ matrix.arch }} + + - name: Build (nolegacy) + run: .ci\windows\build.cmd nolegacy + + - name: Test (nolegacy) + run: .ci\windows\test.cmd nolegacy + if: always() + + - name: Build (OpenSSL) + run: .ci\windows\build.cmd openssl + if: always() + + - name: Test (OpenSSL) + run: .ci\windows\test.cmd openssl + if: always()