ejabberd.yml.example: Use non-standard STUN port #224
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: Runtime | |
on: | |
push: | |
paths: | |
- '*' | |
- '!*.md' | |
- '.github/workflows/runtime.yml' | |
- 'checkouts/**' | |
- 'config/**' | |
- 'lib/**' | |
- 'm4/**' | |
- 'plugins/**' | |
- 'rel/**' | |
pull_request: | |
paths: | |
- '*' | |
- '!*.md' | |
- '.github/workflows/runtime.yml' | |
- 'checkouts/**' | |
- 'config/**' | |
- 'lib/**' | |
- 'm4/**' | |
- 'plugins/**' | |
- 'rel/**' | |
jobs: | |
rebars: | |
name: Rebars | |
strategy: | |
fail-fast: false | |
matrix: | |
otp: ['20', '25', '26', '27'] | |
rebar: ['rebar', 'rebar3'] | |
exclude: | |
- otp: '27' | |
rebar: 'rebar' | |
runs-on: ubuntu-22.04 | |
container: | |
image: erlang:${{ matrix.otp }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get compatible Rebar binaries | |
if: matrix.otp < 24 | |
run: | | |
rm rebar | |
rm rebar3 | |
wget https://github.com/processone/ejabberd/raw/21.12/rebar | |
wget https://github.com/processone/ejabberd/raw/21.12/rebar3 | |
chmod +x rebar | |
chmod +x rebar3 | |
- name: Prepare libraries | |
run: | | |
apt-get -qq update | |
apt-get purge -y libgd3 nginx | |
apt-get -qq install libexpat1-dev libgd-dev libpam0g-dev \ | |
libsqlite3-dev libwebp-dev libyaml-dev | |
- name: Cache Hex.pm | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/rebar3/ | |
key: ${{matrix.otp}}-${{hashFiles('rebar.config')}} | |
- name: Compile | |
run: | | |
./autogen.sh | |
./configure --with-rebar=./${{ matrix.rebar }} \ | |
--prefix=/tmp/ejabberd \ | |
--enable-all \ | |
--disable-elixir \ | |
--disable-tools \ | |
--disable-odbc | |
make | |
- run: make xref | |
- name: Prepare rel (rebar2) | |
if: matrix.rebar == 'rebar' | |
run: | | |
mkdir -p _build/prod && ln -s `pwd`/rel/ _build/prod/rel | |
mkdir -p _build/dev && ln -s `pwd`/rel/ _build/dev/rel | |
- name: Run rel | |
run: | | |
make rel | |
_build/prod/rel/ejabberd/bin/ejabberdctl start \ | |
&& _build/prod/rel/ejabberd/bin/ejabberdctl started | |
_build/prod/rel/ejabberd/bin/ejabberdctl register user1 localhost s0mePass | |
_build/prod/rel/ejabberd/bin/ejabberdctl registered_users localhost > registered.log | |
_build/prod/rel/ejabberd/bin/ejabberdctl stop \ | |
&& _build/prod/rel/ejabberd/bin/ejabberdctl stopped | |
- name: Run dev | |
run: | | |
make dev | |
_build/dev/rel/ejabberd/bin/ejabberdctl start \ | |
&& _build/dev/rel/ejabberd/bin/ejabberdctl started | |
_build/dev/rel/ejabberd/bin/ejabberdctl register user2 localhost s0mePass | |
_build/dev/rel/ejabberd/bin/ejabberdctl registered_users localhost >> registered.log | |
_build/dev/rel/ejabberd/bin/ejabberdctl stop \ | |
&& _build/dev/rel/ejabberd/bin/ejabberdctl stopped | |
- name: Run install | |
run: | | |
make install | |
/tmp/ejabberd/sbin/ejabberdctl start \ | |
&& /tmp/ejabberd/sbin/ejabberdctl started | |
/tmp/ejabberd/sbin/ejabberdctl register user3 localhost s0mePass | |
/tmp/ejabberd/sbin/ejabberdctl registered_users localhost >> registered.log | |
/tmp/ejabberd/sbin/ejabberdctl stop \ | |
&& /tmp/ejabberd/sbin/ejabberdctl stopped | |
- name: View logs | |
run: | | |
echo "===> Registered:" | |
cat registered.log | |
echo "===> Prod:" | |
cat _build/prod/rel/ejabberd/logs/* | |
echo "===> Dev:" | |
cat _build/dev/rel/ejabberd/logs/* | |
echo "===> Install:" | |
cat /tmp/ejabberd/var/log/ejabberd/* | |
- name: Check logs | |
run: | | |
grep -q '^user1$' registered.log | |
grep -q '^user2$' registered.log | |
grep -q '^user3$' registered.log | |
grep -q 'is started' _build/prod/rel/ejabberd/logs/ejabberd.log | |
grep -q 'is stopped' _build/prod/rel/ejabberd/logs/ejabberd.log | |
test $(find _build/prod/rel/ -empty -name error.log) | |
grep -q 'is started' _build/dev/rel/ejabberd/logs/ejabberd.log | |
grep -q 'is stopped' _build/dev/rel/ejabberd/logs/ejabberd.log | |
test $(find _build/dev/rel/ -empty -name error.log) | |
grep -q 'is started' /tmp/ejabberd/var/log/ejabberd/ejabberd.log | |
grep -q 'is stopped' /tmp/ejabberd/var/log/ejabberd/ejabberd.log | |
test $(find /tmp/ejabberd/var/log/ejabberd/ -empty -name error.log) | |
- name: View logs failures | |
if: always() | |
run: | | |
cat _build/prod/rel/ejabberd/logs/ejabberd.log | |
cat _build/prod/rel/ejabberd/logs/error.log | |
cat _build/dev/rel/ejabberd/logs/ejabberd.log | |
cat _build/dev/rel/ejabberd/logs/error.log | |
cat /tmp/ejabberd/var/log/ejabberd/ejabberd.log | |
cat /tmp/ejabberd/var/log/ejabberd/error.log | |
rebar3-elixir: | |
name: Rebar3+Elixir | |
strategy: | |
fail-fast: false | |
matrix: | |
otp: ['23.0', '25', '26', '27'] | |
elixir: ['1.13', '1.15', '1.16', '1.17'] | |
exclude: | |
- otp: '23.0' | |
elixir: '1.15' | |
- otp: '23.0' | |
elixir: '1.16' | |
- otp: '23.0' | |
elixir: '1.17' | |
- otp: '26' | |
elixir: '1.13' | |
- otp: '27' | |
elixir: '1.13' | |
- otp: '27' | |
elixir: '1.15' | |
- otp: '27' | |
elixir: '1.16' | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get specific Erlang/OTP | |
uses: erlef/setup-beam@v1 | |
with: | |
otp-version: ${{matrix.otp}} | |
elixir-version: ${{matrix.elixir}} | |
- name: Get compatible Rebar binaries | |
if: matrix.otp < 24 | |
run: | | |
rm rebar | |
rm rebar3 | |
wget https://github.com/processone/ejabberd/raw/21.12/rebar | |
wget https://github.com/processone/ejabberd/raw/21.12/rebar3 | |
chmod +x rebar | |
chmod +x rebar3 | |
- name: Prepare libraries | |
run: | | |
sudo apt-get -qq update | |
sudo apt-get -y purge libgd3 nginx | |
sudo apt-get -qq install libexpat1-dev libgd-dev libpam0g-dev \ | |
libsqlite3-dev libwebp-dev libyaml-dev | |
- name: Enable ModPresenceDemo and an Elixir dependency | |
run: | | |
sed -i "s|^modules:|modules:\n 'ModPresenceDemo': {}|g" ejabberd.yml.example | |
cat ejabberd.yml.example | |
sed -i 's|^{deps, \[\(.*\)|{deps, [{decimal, ".*", {git, "https://github.com/ericmj/decimal", {branch, "main"}}},\n \1|g' rebar.config | |
cat rebar.config | |
- name: Cache Hex.pm | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.cache/rebar3/ | |
key: ${{matrix.otp}}-${{hashFiles('rebar.config')}} | |
- name: Compile | |
run: | | |
./autogen.sh | |
./configure --with-rebar=./rebar3 \ | |
--prefix=/tmp/ejabberd \ | |
--enable-all \ | |
--disable-odbc | |
make | |
- run: make xref | |
- name: Run rel | |
run: | | |
make rel | |
_build/prod/rel/ejabberd/bin/ejabberdctl start \ | |
&& _build/prod/rel/ejabberd/bin/ejabberdctl started | |
_build/prod/rel/ejabberd/bin/ejabberdctl register user1 localhost s0mePass | |
_build/prod/rel/ejabberd/bin/ejabberdctl registered_users localhost > registered.log | |
_build/prod/rel/ejabberd/bin/ejabberdctl stop \ | |
&& _build/prod/rel/ejabberd/bin/ejabberdctl stopped | |
- name: Run dev | |
run: | | |
make dev | |
_build/dev/rel/ejabberd/bin/ejabberdctl start \ | |
&& _build/dev/rel/ejabberd/bin/ejabberdctl started | |
_build/dev/rel/ejabberd/bin/ejabberdctl register user2 localhost s0mePass | |
_build/dev/rel/ejabberd/bin/ejabberdctl registered_users localhost >> registered.log | |
_build/dev/rel/ejabberd/bin/ejabberdctl stop \ | |
&& _build/dev/rel/ejabberd/bin/ejabberdctl stopped | |
- name: Run install | |
run: | | |
make install | |
/tmp/ejabberd/sbin/ejabberdctl start \ | |
&& /tmp/ejabberd/sbin/ejabberdctl started | |
/tmp/ejabberd/sbin/ejabberdctl register user3 localhost s0mePass | |
/tmp/ejabberd/sbin/ejabberdctl registered_users localhost >> registered.log | |
/tmp/ejabberd/sbin/ejabberdctl stop \ | |
&& /tmp/ejabberd/sbin/ejabberdctl stopped | |
- name: View logs | |
if: always() | |
run: | | |
echo "===> Registered:" | |
cat registered.log | |
echo "===> Prod:" | |
cat _build/prod/rel/ejabberd/logs/* | |
echo "===> Dev:" | |
cat _build/dev/rel/ejabberd/logs/* | |
echo "===> Install:" | |
cat /tmp/ejabberd/var/log/ejabberd/* | |
- name: Check logs | |
if: always() | |
run: | | |
grep -q '^user1$' registered.log | |
grep -q '^user2$' registered.log | |
grep -q '^user3$' registered.log | |
grep -q 'is started' _build/prod/rel/ejabberd/logs/ejabberd.log | |
grep -q 'is stopped' _build/prod/rel/ejabberd/logs/ejabberd.log | |
grep -q 'module Presence Demo' _build/prod/rel/ejabberd/logs/ejabberd.log | |
test $(find _build/prod/ -empty -name error.log) | |
grep -q 'is started' _build/dev/rel/ejabberd/logs/ejabberd.log | |
grep -q 'is stopped' _build/dev/rel/ejabberd/logs/ejabberd.log | |
grep -q 'module Presence Demo' _build/dev/rel/ejabberd/logs/ejabberd.log | |
test $(find _build/dev/ -empty -name error.log) | |
grep -q 'is started' /tmp/ejabberd/var/log/ejabberd/ejabberd.log | |
grep -q 'is stopped' /tmp/ejabberd/var/log/ejabberd/ejabberd.log | |
grep -q 'module Presence Demo' /tmp/ejabberd/var/log/ejabberd/ejabberd.log | |
test $(find /tmp/ejabberd/var/log/ejabberd/ -empty -name error.log) | |
- name: View logs failures | |
if: failure() | |
run: | | |
cat _build/prod/rel/ejabberd/logs/ejabberd.log | |
cat _build/prod/rel/ejabberd/logs/error.log | |
cat _build/dev/rel/ejabberd/logs/ejabberd.log | |
cat _build/dev/rel/ejabberd/logs/error.log | |
cat /tmp/ejabberd/var/log/ejabberd/ejabberd.log | |
cat /tmp/ejabberd/var/log/ejabberd/error.log | |
mix: | |
name: Mix | |
strategy: | |
fail-fast: false | |
matrix: | |
otp: ['23.0', '25', '26', '27'] | |
elixir: ['1.13', '1.15', '1.16', '1.17'] | |
exclude: | |
- otp: '23.0' | |
elixir: '1.15' | |
- otp: '23.0' | |
elixir: '1.16' | |
- otp: '23.0' | |
elixir: '1.17' | |
- otp: '26' | |
elixir: '1.13' | |
- otp: '27' | |
elixir: '1.13' | |
- otp: '27' | |
elixir: '1.15' | |
- otp: '27' | |
elixir: '1.16' | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get specific Erlang/OTP | |
uses: erlef/setup-beam@v1 | |
with: | |
otp-version: ${{matrix.otp}} | |
elixir-version: ${{matrix.elixir}} | |
- name: Prepare libraries | |
run: | | |
sudo apt-get -qq update | |
sudo apt-get -y purge libgd3 nginx | |
sudo apt-get -qq install libexpat1-dev libgd-dev libpam0g-dev \ | |
libsqlite3-dev libwebp-dev libyaml-dev | |
- name: Remove Elixir Matchers | |
run: | | |
echo "::remove-matcher owner=elixir-mixCompileWarning::" | |
echo "::remove-matcher owner=elixir-credoOutputDefault::" | |
echo "::remove-matcher owner=elixir-mixCompileError::" | |
echo "::remove-matcher owner=elixir-mixTestFailure::" | |
echo "::remove-matcher owner=elixir-dialyzerOutputDefault::" | |
- name: Enable ModPresenceDemo and an Elixir dependency | |
run: | | |
sed -i "s|^modules:|modules:\n 'ModPresenceDemo': {}|g" ejabberd.yml.example | |
cat ejabberd.yml.example | |
sed -i 's|^{deps, \(.*\)|{deps, \1\n {decimal, ".*", {git, "https://github.com/ericmj/decimal", {branch, "main"}}}, |g' rebar.config | |
cat rebar.config | |
- name: Unlock Jose dependency on older Erlang | |
if: matrix.otp < 24 | |
run: | | |
mix deps.unlock jose | |
- name: Cache Hex.pm | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.hex/ | |
key: ${{matrix.otp}}-${{hashFiles('mix.exs')}} | |
- name: Compile | |
run: | | |
./autogen.sh | |
./configure --with-rebar=mix \ | |
--prefix=/tmp/ejabberd \ | |
--enable-all | |
make | |
- run: make xref | |
- run: make dialyzer | |
- run: make edoc | |
- name: Run rel | |
run: | | |
make rel | |
_build/prod/rel/ejabberd/bin/ejabberdctl start \ | |
&& _build/prod/rel/ejabberd/bin/ejabberdctl started | |
_build/prod/rel/ejabberd/bin/ejabberdctl register user1 localhost s0mePass | |
_build/prod/rel/ejabberd/bin/ejabberdctl registered_users localhost > registered.log | |
_build/prod/rel/ejabberd/bin/ejabberdctl stop \ | |
&& _build/prod/rel/ejabberd/bin/ejabberdctl stopped | |
- name: Run dev | |
run: | | |
make dev | |
_build/dev/rel/ejabberd/bin/ejabberdctl start \ | |
&& _build/dev/rel/ejabberd/bin/ejabberdctl started | |
_build/dev/rel/ejabberd/bin/ejabberdctl register user2 localhost s0mePass | |
_build/dev/rel/ejabberd/bin/ejabberdctl registered_users localhost >> registered.log | |
_build/dev/rel/ejabberd/bin/ejabberdctl stop \ | |
&& _build/dev/rel/ejabberd/bin/ejabberdctl stopped | |
- name: Run install | |
run: | | |
make install | |
/tmp/ejabberd/sbin/ejabberdctl start \ | |
&& /tmp/ejabberd/sbin/ejabberdctl started | |
/tmp/ejabberd/sbin/ejabberdctl register user3 localhost s0mePass | |
/tmp/ejabberd/sbin/ejabberdctl registered_users localhost >> registered.log | |
/tmp/ejabberd/sbin/ejabberdctl stop \ | |
&& /tmp/ejabberd/sbin/ejabberdctl stopped | |
- name: View logs | |
if: always() | |
run: | | |
echo "===> Registered:" | |
cat registered.log | |
echo "===> Prod:" | |
cat _build/prod/rel/ejabberd/logs/* | |
echo "===> Dev:" | |
cat _build/dev/rel/ejabberd/logs/* | |
echo "===> Install:" | |
cat /tmp/ejabberd/var/log/ejabberd/* | |
- name: Check logs | |
if: always() | |
run: | | |
grep -q '^user1$' registered.log | |
grep -q '^user2$' registered.log | |
grep -q '^user3$' registered.log | |
grep -q 'is started' _build/prod/rel/ejabberd/logs/ejabberd.log | |
grep -q 'is stopped' _build/prod/rel/ejabberd/logs/ejabberd.log | |
grep -q 'module Presence Demo' _build/prod/rel/ejabberd/logs/ejabberd.log | |
test $(find _build/prod/ -empty -name error.log) | |
grep -q 'is started' _build/dev/rel/ejabberd/logs/ejabberd.log | |
grep -q 'is stopped' _build/dev/rel/ejabberd/logs/ejabberd.log | |
grep -q 'module Presence Demo' _build/dev/rel/ejabberd/logs/ejabberd.log | |
test $(find _build/dev/ -empty -name error.log) | |
grep -q 'is started' /tmp/ejabberd/var/log/ejabberd/ejabberd.log | |
grep -q 'is stopped' /tmp/ejabberd/var/log/ejabberd/ejabberd.log | |
grep -q 'module Presence Demo' /tmp/ejabberd/var/log/ejabberd/ejabberd.log | |
test $(find /tmp/ejabberd/var/log/ejabberd/ -empty -name error.log) | |
- name: View logs failures | |
if: failure() | |
run: | | |
cat _build/prod/rel/ejabberd/logs/ejabberd.log | |
cat _build/prod/rel/ejabberd/logs/error.log | |
cat _build/dev/rel/ejabberd/logs/ejabberd.log | |
cat _build/dev/rel/ejabberd/logs/error.log | |
cat /tmp/ejabberd/var/log/ejabberd/ejabberd.log | |
cat /tmp/ejabberd/var/log/ejabberd/error.log |