Skip to content

feat: process-per-connection architecture with full proxy support #307

feat: process-per-connection architecture with full proxy support

feat: process-per-connection architecture with full proxy support #307

Workflow file for this run

---
name: build
on:
push:
branches:
- master
pull_request:
branches:
- master
permissions:
contents: read
jobs:
# Linux x86_64 - main CI
linux:
name: Linux x86_64 OTP-${{matrix.otp}}
runs-on: ubuntu-latest
strategy:
matrix:
otp: ["27.2", "28.0"]
rebar3: ['3.24.0']
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
rebar3-version: ${{matrix.rebar3}}
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: python3 python3-httpbin python3-pip cmake golang
version: 1.1
- run: |
pip3 install gunicorn
gunicorn -b 127.0.0.1:8000 -b unix:httpbin.sock httpbin:app&
- run: rebar3 xref
- run: rebar3 eunit
- run: rebar3 dialyzer
# Linux x86_64 with QUIC support
linux-quic:
name: Linux x86_64 OTP-${{matrix.otp}} (QUIC)
runs-on: ubuntu-latest
if: ${{ false }} # Disabled until QUIC deps are vendored
strategy:
matrix:
otp: ["27.2"]
rebar3: ['3.24.0']
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
rebar3-version: ${{matrix.rebar3}}
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: cmake libssl-dev golang
version: 1.1
- name: Build with QUIC
run: |
make quic-deps || true
rebar3 compile
- run: rebar3 eunit
# Linux ARM64
linux-arm64:
name: Linux ARM64 OTP-${{matrix.otp}}
runs-on: ubuntu-24.04-arm
strategy:
matrix:
otp: ["27.2"]
rebar3: ['3.24.0']
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
rebar3-version: ${{matrix.rebar3}}
- uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: cmake golang
version: 1.1
- run: rebar3 xref
- run: rebar3 eunit
# macOS ARM64 (Apple Silicon)
macos:
name: macOS ARM64 OTP-${{matrix.otp}}
runs-on: macos-15
strategy:
matrix:
otp: ["27"]
rebar3: ['3.24.0']
steps:
- name: Install Erlang and Go
env:
HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: "1"
run: |
brew update
brew install erlang@${{ matrix.otp }} go
echo "$(brew --prefix erlang@${{ matrix.otp }})/bin" >> $GITHUB_PATH
- name: Install rebar3
run: |
wget https://github.com/erlang/rebar3/releases/download/${{ matrix.rebar3 }}/rebar3 && chmod +x rebar3
sudo mv rebar3 /usr/local/bin/ && sudo chmod +x /usr/local/bin/rebar3
- uses: actions/checkout@v4
with:
submodules: recursive
- run: make test
# FreeBSD
freebsd:
name: FreeBSD 14.2 OTP-28
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Test on FreeBSD
uses: vmactions/freebsd-vm@v1
with:
release: "14.2"
usesh: true
prepare: |
pkg install -y erlang-runtime28 rebar3 cmake git gmake go
run: |
# Ensure Erlang 28 is in PATH
export PATH="/usr/local/lib/erlang28/bin:$PATH"
echo "Erlang version:"
erl -eval 'erlang:display(erlang:system_info(otp_release)), halt().' -noshell
echo "Architecture:"
uname -m
git config --global --add safe.directory $GITHUB_WORKSPACE
rebar3 eunit