feat: setup code attributes in Elixir macros #2032
Workflow file for this run
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: Elixir | |
on: | |
pull_request: | |
branches: | |
- "main" | |
types: [opened, reopened, synchronize, labeled] | |
push: | |
branches: | |
- "main" | |
jobs: | |
format: | |
runs-on: ubuntu-24.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-24.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-24.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@v5 | |
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-24.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 | |
semconv_tests: | |
runs-on: ${{ matrix.os }} | |
if: (contains(github.event.pull_request.labels.*.name, 'language-elixir') && contains(github.event.pull_request.labels.*.name, 'scope-semconv')) | |
name: Test SemConv 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-24.04] | |
exclude: | |
- elixir_version: "1.12.3" | |
- otp_version: "26.1.2" | |
defaults: | |
run: | |
working-directory: apps/opentelemetry_semantic_conventions | |
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: Cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/deps | |
~/_build | |
key: ${{ runner.os }}-test-${{ matrix.otp_version }}-${{ matrix.elixir_version }}-${{ hashFiles('**/mix.lock') }} | |
- name: Get and compile deps | |
if: steps.deps-cache.outputs.cache-hit != 'true' | |
run: | | |
mix deps.get | |
mix deps.compile | |
- name: ExUnit | |
run: mix test |