Skip to content

fix: separate shell protocol from diagnostics #35

fix: separate shell protocol from diagnostics

fix: separate shell protocol from diagnostics #35

Workflow file for this run

name: CI
on:
push:
branches: [ main, 'release/**' ]
# No branch filter. A PR into a release integration branch has to get CI too,
# or there is nothing for the merge gate to check.
pull_request:
jobs:
precommit:
name: Precommit (Elixir 1.19 / OTP 28)
runs-on: ubuntu-24.04
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Set up Elixir
uses: erlef/setup-beam@v1
with:
elixir-version: '1.19'
otp-version: '28'
- name: Restore dependencies cache
uses: actions/cache@v5
with:
path: |
deps
_build
key: ${{ runner.os }}-${{ runner.arch }}-mix-precommit-${{ hashFiles('**/mix.lock') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-mix-precommit-
- name: Install dependencies
run: mix deps.get
- name: Run precommit checks
run: mix precommit
test:
name: Test on ${{ matrix.os }} (Elixir ${{ matrix.elixir }} / OTP ${{ matrix.otp }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, macos-15]
elixir: ['1.18', '1.19', '1.20']
otp: ['27', '28', '29']
exclude:
# Elixir 1.18 supports Erlang/OTP 25-27
- elixir: '1.18'
otp: '28'
- elixir: '1.18'
otp: '29'
# Elixir 1.19 supports Erlang/OTP 26-28
- elixir: '1.19'
otp: '29'
steps:
- name: Checkout code
uses: actions/checkout@v5
- name: Set up Elixir
uses: erlef/setup-beam@v1
with:
elixir-version: ${{ matrix.elixir }}
otp-version: ${{ matrix.otp }}
- name: Restore dependencies cache
uses: actions/cache@v5
with:
path: |
deps
_build
key: ${{ runner.os }}-${{ runner.arch }}-mix-${{ matrix.elixir }}-${{ matrix.otp }}-${{ hashFiles('**/mix.lock') }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-mix-${{ matrix.elixir }}-${{ matrix.otp }}-
- name: Install dependencies
run: mix deps.get
- name: Compile
run: mix compile --warnings-as-errors
- name: Run tests
# Includes the end-to-end suite, which boots a release and hot-upgrades
# it. That is the path most sensitive to Elixir and OTP release tooling,
# so it is worth running on every cell of the matrix.
run: mix test --include e2e