Skip to content

Merge pull request #301 from qzhuyan/build/william/release-logging-va… #1053

Merge pull request #301 from qzhuyan/build/william/release-logging-va…

Merge pull request #301 from qzhuyan/build/william/release-logging-va… #1053

Workflow file for this run

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
mac:
timeout-minutes: 60
needs: formatting-check
strategy:
fail-fast: false
matrix:
os:
- macos-14
otp:
- 25
- 26
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
run: |
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:
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:
- 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