Skip to content

support nif module reload #827

support nif module reload

support nif module reload #827

Workflow file for this run

name: ci
on: [push, pull_request]
jobs:
mac:
timeout-minutes: 45
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
timeout-minutes: 25
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