name: Elixir CI on: push: branches: [main] pull_request: branches: [main] jobs: build: name: Build and test ${{ matrix.elixir }} / OTP ${{ matrix.otp }} runs-on: ubuntu-24.04 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} MIX_ENV: test strategy: fail-fast: false matrix: include: - elixir: "1.17" otp: "27" steps: - uses: actions/checkout@v5 - name: Set up Elixir uses: erlef/setup-beam@v1 with: elixir-version: ${{ matrix.elixir }} otp-version: ${{ matrix.otp }} - name: Restore dependency cache uses: actions/cache@v4 id: deps-cache with: path: live_svelte/deps key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-mix-${{ hashFiles('live_svelte/mix.lock') }} restore-keys: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-mix- - name: Restore build cache uses: actions/cache@v4 with: path: live_svelte/_build key: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-build-${{ hashFiles('live_svelte/mix.lock') }} restore-keys: ${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-build- - name: Install dependencies if: steps.deps-cache.outputs.cache-hit != 'true' working-directory: live_svelte run: mix deps.get - name: Compile application working-directory: live_svelte run: mix compile - name: Run tests working-directory: live_svelte run: mix test - name: Run tests and coverage working-directory: live_svelte run: mix coveralls.github