Skip to content

Merge pull request #766 from open-telemetry/elixir-exception-atom #1937

Merge pull request #766 from open-telemetry/elixir-exception-atom

Merge pull request #766 from open-telemetry/elixir-exception-atom #1937

Workflow file for this run

name: Elixir
on:
pull_request:
branches:
- 'main'
push:
branches:
- 'main'
jobs:
format:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
otp-version: '26.1.2'
elixir-version: '1.15.7'
version-type: 'strict'
- uses: actions/cache@v4
name: Cache
with:
path: |
apps/opentelemetry_api/deps
key: v3-${{ hashFiles('apps/opentelemetry_api/mix.lock') }}
- run: mix format --check-formatted
- run: mix deps.get
working-directory: apps/opentelemetry_api/
- run: mix format --check-formatted
working-directory: apps/opentelemetry_api/
sdk_tests:
runs-on: ${{ matrix.os }}
name: Test SDK on Elixir ${{ matrix.elixir_version }} (OTP ${{ matrix.otp_version }}) and ${{ matrix.os }}
strategy:
matrix:
otp_version: ['26.1.2', '24.3.4.14']
elixir_version: ['1.15.7', '1.12.3']
rebar3_version: ['3.22.1']
os: [ubuntu-20.04]
exclude:
- elixir_version: "1.12.3"
- otp_version: "26.1.2"
env:
OTP_VERSION: ${{ matrix.otp_version }}
ELIXIR_VERSION: ${{ matrix.elixir_version }}
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
otp-version: ${{ matrix.otp_version }}
elixir-version: ${{ matrix.elixir_version }}
rebar3-version: ${{ matrix.rebar3_version }}
version-type: 'strict'
- name: Compile
run: rebar3 as test compile
- name: ExUnit
run: mix test --no-start test/otel_tests.exs test/otel_metric_tests.exs
api_tests:
runs-on: ${{ matrix.os }}
name: Test API on Elixir ${{ matrix.elixir_version }} (OTP ${{ matrix.otp_version }}) and ${{ matrix.os }}
strategy:
matrix:
otp_version: ['26.1.2', '24.3.4.14']
elixir_version: ['1.15.7', '1.12.3']
rebar3_version: ['3.22.1']
os: [ubuntu-20.04]
exclude:
- elixir_version: "1.12.3"
- otp_version: "26.1.2"
env:
OTP_VERSION: ${{ matrix.otp_version }}
ELIXIR_VERSION: ${{ matrix.elixir_version }}
defaults:
run:
working-directory: apps/opentelemetry_api/
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
otp-version: ${{ matrix.otp_version }}
elixir-version: ${{ matrix.elixir_version }}
rebar3-version: ${{ matrix.rebar3_version }}
version-type: 'strict'
- uses: actions/cache@v4
name: Cache
with:
path: |
apps/opentelemetry_api/deps
apps/opentelemetry_api/_build
key: ${{ runner.os }}-build-${{ matrix.otp_version }}-${{ matrix.elixir_version }}-v4-${{ hashFiles(format('{0}{1}', github.workspace, '/apps/opentelemetry_api/mix.lock')) }}
restore-keys: |
${{ runner.os }}-build-${{ matrix.otp_version }}-${{ matrix.elixir_version }}-
- run: mix deps.get
name: Deps
- run: mix test --cover
name: ExUnit
- uses: codecov/codecov-action@v4
if: ${{ always() }}
with:
file: apps/opentelemetry_api/coverage.xml
env_vars: OTP_VERSION,ELIXIR_VERSION
flags: api,elixir
dialyze:
runs-on: ${{ matrix.os }}
name: Dialyze on Elixir ${{ matrix.elixir_version }} (OTP ${{ matrix.otp_version }}) and ${{ matrix.os }}
strategy:
matrix:
otp_version: ['26.1.2']
elixir_version: ['1.15.7']
rebar_version: ['3.22.1']
os: [ubuntu-20.04]
env:
OTP_VERSION: ${{ matrix.otp_version }}
ELIXIR_VERSION: ${{ matrix.elixir_version }}
defaults:
run:
working-directory: apps/opentelemetry_api/
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
otp-version: ${{ matrix.otp_version }}
elixir-version: ${{ matrix.elixir_version }}
version-type: 'strict'
- uses: actions/cache@v4
name: Cache
with:
path: |
apps/opentelemetry_api/deps
apps/opentelemetry_api/_build
key: ${{ runner.os }}-dialyzer-${{ matrix.otp_version }}-${{ matrix.elixir_version }}-v4-${{ hashFiles('apps/opentelemetry_api/mix.lock') }}
restore-keys: |
${{ runner.os }}-build-${{ matrix.otp_version }}-${{ matrix.elixir_version }}-
- run: mix deps.get
name: Deps
- run: mix dialyzer
name: Dialyzer