+ CC: clang-12
+
+ - name: Run tests
+ run: bash .ci/sanitizers/run.sh
+
+ - name: Archive test results
+ run: sudo tar -c -z -f test-results.tar.gz test/ sanitizer/
+ if: always()
+
+ - name: Upload test results
+ uses: actions/upload-artifact@v2
+ with:
+ name: tests_sanitizer_${{ matrix.sanitizer }}
+ path: test-results.tar.gz
+ if: always()
+
+ linux:
+ runs-on: ubuntu-latest
+ timeout-minutes: 20
+ strategy:
+ fail-fast: false
+ matrix:
+ os:
+ - alpine
+ - centos:7 # aka RHEL 7
+ - almalinux:8 # aka RHEL 8
+ - fedora
+ - debian:stable
+ - debian:testing
+ - ubuntu # current LTS
+ - ubuntu:rolling # latest
+ container:
+ image: ${{ matrix.os }}
+ options: --privileged
+ env:
+ CI: 1
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v1
+
+ - name: Install deps
+ run: sh .ci/deps.sh
+
+ - name: Assign name for test results artifact
+ run: echo ARTIFACT="$(echo '${{ matrix.os }}' | sed 's|[:/]|_|g')" >>"$GITHUB_ENV"
+
+ - name: Create a non-privileged user
+ run: sh .ci/test/prepare.sh
+
+ - 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
+
+ - name: Upload test results
+ uses: actions/upload-artifact@v2
+ with:
+ name: tests_${{ env.ARTIFACT }}
+ path: /tmp/logs/tests.*.tar.gz
+ if: always()