opentelemetry-erlang-contrib/.github/workflows/elixir.yml

71 lines
2.3 KiB
YAML

name: Elixir
on:
pull_request:
branches:
- 'main'
types: [opened, reopened, synchronize, labeled]
push:
branches:
- 'main'
jobs:
# test-matrix:
# runs-on: ubuntu-latest
# outputs:
# matrix: ${{ steps.set-matrix.outputs.matrix }}
# steps:
# - uses: actions/checkout@v2
# - name: Read file
# id: set-matrix
# run: |
# echo "::set-output name=matrix::$(cat ./.github/test-matrix.json | jq -r -s '.|tojson')"
opentelemetry-phoenix:
# needs: [test-matrix]
if: (contains(github.event.pull_request.labels.*.name, 'elixir') && contains(github.event.pull_request.labels.*.name, 'opentelemetry_phoenix'))
defaults:
run:
working-directory: instrumentation/${{ env.app }}
runs-on: ubuntu-18.04
name: Opentelemetry Phoenix test on Elixir ${{ matrix.elixir_version }} (OTP ${{ matrix.otp_version }})
strategy:
fail-fast: false
matrix:
os: [ubuntu-18.04]
otp_version: ["24.0.4", "23.3.4.2", "22.3.4.20"]
elixir_version: ["1.12.2", "1.11.4"]
rebar3_version: ["3.16.1"]
include:
- otp_version: '21.3.8.24'
elixir_version: '1.11.4'
rebar3_version: '3.15.2'
os: ubuntu-18.04
exclude:
- otp_version: '21.3.8.24'
elixir_version: '1.12.1'
env:
app: 'opentelemetry_phoenix'
steps:
- uses: actions/checkout@v2
- uses: erlef/setup-beam@v1
with:
otp-version: ${{ matrix.otp_version }}
elixir-version: ${{ matrix.elixir_version }}
rebar3-version: ${{ matrix.rebar3_version }}
- name: Cache
uses: actions/cache@v2
with:
path: |
${{ env.app }}/deps
${{ env.app }}/_build
key: ${{ runner.os }}-build-${{ matrix.otp_version }}-${{ matrix.elixir_version }}-v3-${{ hashFiles(format('{0}{1}', github.workspace, 'instrumentation/${{ env.app }}/mix.lock')) }}
- name: Fetch deps
if: steps.deps-cache.outputs.cache-hit != 'true'
run: mix deps.get
- name: Compile project
run: mix compile --warnings-as-errors
- name: Check formatting
run: mix format --check-formatted
- name: Test
run: mix test