name: Erlang 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: | matrixStringifiedObject="{\"otp_version\":[\"24.0.6\",\"23.3.4.7\",\"22.3.4.21\"],\"rebar3_version\":[\"3.16.1\"],\"os\":[\"ubuntu-18.04\"],\"include\":[{\"otp_version\":\"21.3.8.24\",\"rebar3_version\":\"3.15.2\"}]}" echo "::set-output name=matrix::$matrixStringifiedObject" opentelemetry-cowboy: needs: [test-matrix] if: (contains(github.event.pull_request.labels.*.name, 'erlang') && contains(github.event.pull_request.labels.*.name, 'opentelemetry_cowboy')) env: app: 'opentelemetry_cowboy' defaults: run: working-directory: instrumentation/${{ env.app }} runs-on: ubuntu-18.04 name: Opentelemetry Cowboy test on OTP ${{ matrix.otp_version }} with Rebar3 ${{ matrix.rebar3_version }} strategy: fail-fast: false matrix: ${{ fromJson(needs.test-matrix.outputs.matrix) }} steps: - uses: actions/checkout@v2 - uses: erlef/setup-beam@v1 with: otp-version: ${{ matrix.otp_version }} rebar3-version: ${{ matrix.rebar3_version }} - name: Cache uses: actions/cache@v2 with: path: | ${{ env.app }}/_build key: ${{ runner.os }}-build-${{ matrix.otp_version }}-${{ matrix.rebar3_version }}-v3-${{ hashFiles(format('{0}{1}', github.workspace, 'instrumentation/${{ env.app }}/rebar.lock')) }} - name: Fetch deps if: steps.deps-cache.outputs.cache-hit != 'true' run: rebar3 get-deps - name: Test run: rebar3 ct