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