diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 853bda3..b590d55 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,53 +11,108 @@ jobs: mix_test_old: name: mix test (Elixir ${{matrix.elixir}} | OTP ${{matrix.otp}}) runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - elixir: 1.13.x + otp: 24 + os: ubuntu-22.04 + gcc: gcc-10 + gpp: g++-10 + - elixir: 1.14.x + otp: 25 + os: ubuntu-22.04 + gcc: gcc-11 + gpp: g++-11 + - elixir: 1.15.x + otp: 26 + os: ubuntu-22.04 + gcc: gcc-11 + gpp: g++-11 + - elixir: 1.16.x + otp: 26 + os: ubuntu-22.04 + gcc: gcc-11 + gpp: g++-11 + - elixir: 1.17.x + otp: 27 + os: ubuntu-24.04 + gcc: gcc-13 + gpp: g++-13 + - elixir: 1.18.x + otp: 27 + os: ubuntu-latest + gcc: gcc-13 + gpp: g++-13 + warnings_as_errors: true + env: + MIX_ENV: test + steps: + - uses: actions/checkout@v2 + - uses: erlef/setup-beam@v1 + with: + otp-version: ${{matrix.otp}} + elixir-version: ${{matrix.elixir}} + - name: Install Dependencies + run: | + mix local.hex --force + mix local.rebar --force + mix deps.get --only test + - name: Cache build artifacts + uses: actions/cache@v3 + with: + path: | + ~/.hex + ~/.mix + _build + key: ${{ matrix.otp }}-${{ matrix.elixir }}-build + - run: mix compile --warnings-as-errors + if: matrix.warnings_as_errors + env: + CC: ${{matrix.gcc}} + CXX: ${{matrix.gpp}} + - run: mix test + env: + CC: ${{matrix.gcc}} + CXX: ${{matrix.gpp}} + mix_test_even_older: + name: mix test (Elixir ${{matrix.elixir}} | OTP ${{matrix.otp}}) + runs-on: ubuntu-latest + container: + image: ubuntu:focal-20250404 + env: + ImageOS: ubuntu20 + MIX_ENV: test strategy: fail-fast: false matrix: include: - elixir: 1.4.x otp: 20 - os: ubuntu-20.04 - elixir: 1.5.x otp: 20 - os: ubuntu-20.04 - elixir: 1.6.x otp: 20 - os: ubuntu-20.04 - elixir: 1.7.x otp: 20 - os: ubuntu-20.04 - elixir: 1.8.x otp: 20 - os: ubuntu-20.04 - elixir: 1.9.x otp: 20 - os: ubuntu-20.04 - elixir: 1.10.x otp: 21 - os: ubuntu-20.04 - elixir: 1.11.x otp: 22 - os: ubuntu-20.04 - elixir: 1.11.x otp: 23 - os: ubuntu-20.04 - elixir: 1.12.x otp: 23 - os: ubuntu-20.04 - - elixir: 1.13.x - otp: 24 - os: ubuntu-20.04 - - elixir: 1.14.x - otp: 25 - os: ubuntu-22.04 - - elixir: 1.15.x - otp: 26 - os: ubuntu-latest - warnings_as_errors: true - env: - MIX_ENV: test steps: + # Needed by erlef/setup-beam action + - run: | + apt update -qqy + apt install -qqy build-essential libssl-dev unzip - uses: actions/checkout@v2 - uses: erlef/setup-beam@v1 with: @@ -76,15 +131,11 @@ jobs: ~/.mix _build key: ${{ matrix.otp }}-${{ matrix.elixir }}-build - - run: mix compile --warnings-as-errors - if: matrix.warnings_as_errors + - run: mix compile env: - CC: gcc-10 - CXX: g++-10 + CC: gcc-9 + CXX: g++-9 - run: mix test - env: - CC: gcc-10 - CXX: g++-10 dialyzer: name: mix dialyzer runs-on: ubuntu-latest @@ -94,8 +145,8 @@ jobs: - uses: actions/checkout@v2 - uses: erlef/setup-beam@v1 with: - otp-version: 26 - elixir-version: 1.15.x + elixir-version: 1.18.x + otp-version: 27 - name: Install Dependencies run: | mix local.hex --force