Merge pull request #333 from qzhuyan/dev/william/more-patches-for-msq… #1153
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: | |
formatting-check: | |
name: Formatting Check | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 | |
- name: Run clang-format style check for C/C++/Protobuf programs. | |
uses: jidicula/clang-format-action@c74383674bf5f7c69f60ce562019c1c94bc1421a # v4.13.0 | |
with: | |
clang-format-version: '13' | |
check-path: 'c_src' | |
- name: Prepare OTP and rebar3 | |
uses: erlef/setup-beam@2f0cc07b4b9bea248ae098aba9e1a8a1de5ec24c # v1.17.5 | |
with: | |
otp-version: 26 | |
rebar3-version: 3.20.0 | |
- name: Run erlfmt for erlang code | |
run: | | |
rebar3 fmt -c | |
pre-check: | |
name: Pre check | |
needs: formatting-check | |
runs-on: ubuntu-latest | |
timeout-minutes: 25 | |
strategy: | |
fail-fast: false | |
matrix: | |
# https://builds.hex.pm/builds/otp/ubuntu-22.04/builds.txt | |
otp: | |
- 26.2.5.3 | |
rebar3: | |
- 3.23.0 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 | |
with: | |
submodules: recursive | |
- uses: erlef/setup-beam@2f0cc07b4b9bea248ae098aba9e1a8a1de5ec24c # v1.17.5 | |
with: | |
otp-version: ${{ matrix.otp }} | |
rebar3-version: ${{ matrix.rebar3 }} | |
- name: release build with debug log off | |
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=Debug | |
export QUICER_TLS_VER=sys | |
make ci | |
mac-mesh: | |
timeout-minutes: 60 | |
needs: pre-check | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- macos-14 | |
- macos-15 | |
otp: | |
- 26 | |
openssl: | |
- openssl3 | |
- openssl | |
- sys | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 | |
with: | |
submodules: recursive | |
- name: Configure Homebrew cache | |
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4.0.2 | |
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 }} | |
echo "$(brew --prefix erlang@${{ matrix.otp }})/bin" >> $GITHUB_PATH | |
- name: release build | |
env: | |
QUICER_TLS_VER: ${{ matrix.openssl }} | |
run: | | |
export QUICER_TLS_VER | |
wget https://s3.amazonaws.com/rebar3/rebar3 | |
sudo mv rebar3 /usr/local/bin/ && sudo chmod +x /usr/local/bin/rebar3 | |
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@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 | |
if: failure() | |
with: | |
name: mac-ct-logs-${{ matrix.os }}-${{ matrix.otp }} | |
path: _build/test/logs | |
retention-days: 1 | |
linux-mesh: | |
needs: pre-check | |
runs-on: ubuntu-latest | |
timeout-minutes: 25 | |
strategy: | |
fail-fast: false | |
matrix: | |
# https://builds.hex.pm/builds/otp/ubuntu-22.04/builds.txt | |
otp: | |
- 25.3.2.9 | |
- 26.2.5.3 | |
- 27.1 | |
openssl: | |
- openssl3 | |
- openssl | |
- sys | |
rebar3: | |
- 3.23.0 | |
build_type: | |
- RelWithDebInfo | |
- Debug | |
logging: | |
- ON | |
- OFF | |
arch: | |
- x86_64 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4.1.6 | |
with: | |
submodules: recursive | |
- uses: erlef/setup-beam@2f0cc07b4b9bea248ae098aba9e1a8a1de5ec24c # v1.17.5 | |
with: | |
otp-version: ${{ matrix.otp }} | |
rebar3-version: ${{ matrix.rebar3 }} | |
- name: release build with debug log off | |
env: | |
CMAKE_BUILD_TYPE: ${{ matrix.build_type }} | |
QUICER_TLS_VER: ${{ 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 QUICER_TLS_VER | |
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@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3 | |
if: failure() | |
with: | |
name: linux-ct-logs-${{ matrix.otp }}-${{ matrix.openssl }}-${{ matrix.build_type }}-${{ matrix.logging }}-${{ matrix.arch }} | |
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 |