Merge pull request #217 from qzhuyan/dev/william/msquic2.2-evt-peer-n… #783
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ci | |
on: [push, pull_request] | |
jobs: | |
mac: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- macos-12 | |
- macos-11 | |
otp: | |
- 24 | |
- 25 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Configure Homebrew cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/Library/Caches/Homebrew/ | |
~/Library/Caches/Homebrew/downloads/ | |
key: brew-${{ matrix.os }}-${{ matrix.otp }} | |
- name: prepare | |
run: | | |
export HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK=1 | |
brew install erlang@${{ matrix.otp }} | |
- name: install rebar3 | |
run: | | |
wget https://s3.amazonaws.com/rebar3/rebar3 && chmod +x rebar3 | |
cp ./rebar3 /usr/local/bin/rebar3 | |
- name: release build | |
run: | | |
export PATH="/usr/local/opt/erlang@${{ matrix.otp }}/bin:$PATH" | |
erl -eval 'erlang:display(erlang:system_info(system_version)),halt()' | |
ulimit -c unlimited | |
# run sudo for getting coredump | |
sudo make ci | |
- name: lldb bt | |
if: failure() | |
run: | | |
corefile=$(find /cores -name 'core.*') | |
if [ -n $corefile ]; then | |
sudo lldb --one-line bt $(erl -noshell -eval 'io:format(code:root_dir()),halt()')/erts-*/bin/beam.smp -c "${corefile}" | |
else | |
echo "No coredump found" | |
fi | |
- name: Archive CT Logs | |
uses: actions/upload-artifact@v2 | |
if: failure() | |
with: | |
name: mac-ct-logs | |
path: _build/test/logs | |
retention-days: 1 | |
linux: | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
otp: | |
- 24.3.4 | |
- 25.3.2 | |
openssl: | |
- openssl3 | |
- openssl | |
rebar3: | |
- 3.20.0 | |
build_type: | |
- RelWithDebInfo | |
- Debug | |
logging: | |
- ON | |
- OFF | |
arch: | |
- x86_64 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- uses: erlef/setup-beam@v1 | |
with: | |
otp-version: ${{ matrix.otp }} | |
rebar3-version: ${{ matrix.rebar3 }} | |
- name: release build with debug log off | |
env: | |
CMAKE_BUILD_TYPE: ${{ matrix.build_type }} | |
QUIC_TLS: ${{ matrix.openssl }} | |
QUIC_ENABLE_LOGGING: ${{ matrix.logging }} | |
run: | | |
echo "github ref: ${{ github.event.ref }}" | |
echo "github ref: ${{ github.ref }}" | |
sudo sysctl -w kernel.core_pattern=core | |
ulimit -c unlimited | |
export CMAKE_BUILD_TYPE | |
export QUIC_TLS | |
export QUIC_ENABLE_LOGGING | |
if [ "${QUIC_ENABLE_LOGGING}" == "ON" ] ; then | |
export QUIC_LOGGING_TYPE=lttng | |
sudo apt-add-repository ppa:lttng/stable-2.13 | |
sudo apt-get update | |
sudo apt-get install -y lttng-tools babeltrace liblttng-ust-dev lttng-modules-dkms- | |
which lttng | |
uname -a | |
mkdir msquic_lttng | |
lttng create msquic -o=./msquic_lttng | |
lttng enable-event --userspace CLOG_* | |
lttng add-context --userspace --type=vpid --type=vtid | |
lttng start | |
cleanup () { | |
lttng stop msquic; | |
babeltrace --names all ./msquic_lttng/* > _build/test/quic.babel.txt | |
} | |
trap "cleanup" EXIT | |
fi | |
make ci | |
- name: gdb bt | |
if: failure() | |
run: | | |
set -x | |
which gdb || sudo apt install gdb | |
corefile=$(find _build/test -name core.*) | |
if [ -n "$corefile" ]; then | |
echo "found corefile: $corefile"; | |
gdb -ex bt $(erl -noshell -eval 'io:format(code:root_dir()),halt()')/erts-*/bin/beam.smp "${corefile}" | |
else | |
echo "No coredump found" | |
fi | |
- name: Archive CT Logs | |
uses: actions/upload-artifact@v3 | |
if: failure() | |
with: | |
name: linux-ct-logs | |
path: _build/test/ | |
retention-days: 1 | |
- name: build rel tar file | |
if: startsWith(github.ref, 'refs/tags/') | |
run: | | |
make tar | |
mv _build/default/rel/quicer/quicer-*.tar.gz quicer.tar.gz |