Skip to content

fix: OTP-26

fix: OTP-26 #382

Workflow file for this run

name: CI
on: [push, pull_request]
jobs:
chromedriver:
name: ChromeDriver (${{matrix.elixir}}/${{matrix.otp}})
runs-on: ubuntu-latest
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true)
strategy:
matrix:
otp: [23.3, 24.2, 25.3, 26.1]
elixir: [1.12.2, 1.13.4, 1.14.5, 1.15.7]
exclude:
- elixir: 1.12.2
otp: 25.3
- elixir: 1.12.2
otp: 26.1
- elixir: 1.13.4
otp: 26.1
- elixir: 1.14.5
otp: 26.1
- elixir: 1.15.7
otp: 23.3
fail-fast: false
env:
WALLABY_DRIVER: chrome
ELIXIR_VERSION: ${{ matrix.elixir }}
OTP_VERSION: ${{ matrix.otp }}
steps:
- uses: actions/checkout@v2
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- uses: actions/cache@v1
id: cache
with:
path: deps
key: ${{ runner.os }}-mix-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
- name: Install Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: mix deps.get
- name: Run Tests
run: mix test
linting:
name: Linting (${{matrix.elixir}}/${{matrix.otp}})
runs-on: ubuntu-latest
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true)
strategy:
matrix:
otp: [23.3, 24.2, 25.3, 26.1]
elixir: [1.12.2, 1.13.4, 1.14.5, 1.15.7]
exclude:
- elixir: 1.12.2
otp: 25.3
- elixir: 1.12.2
otp: 26.1
- elixir: 1.13.4
otp: 26.1
- elixir: 1.14.5
otp: 26.1
- elixir: 1.15.7
otp: 23.3
fail-fast: false
steps:
- uses: actions/checkout@v2
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
# Don't cache PLTs based on mix.lock hash, as Dialyzer can incrementally update even old ones
# Cache key based on Elixir & Erlang version (also useful when running in matrix)
- name: Restore PLT cache
uses: actions/cache/restore@v3
id: plt_cache
with:
key: |
${{ runner.os }}-${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-${{ hashFiles('**/mix.lock') }}
restore-keys: |
${{ runner.os }}-${{ steps.beam.outputs.elixir-version }}-${{ steps.beam.outputs.otp-version }}-
path: |
priv/plts
- name: Install Dependencies
if: steps.deps-cache.outputs.cache-hit != 'true'
run: mix deps.get
- name: Compile
run: mix compile --force --warnings-as-errors
- name: Check formatting
run: mix format --check-formatted
if: matrix.elixir == '1.15.7'
- name: Run Credo
run: mix credo --strict
- name: Run Dialyzer
run: mix dialyzer --halt-exit-status
unit_tests:
name: Unit Tests (${{matrix.elixir}}/${{matrix.otp}})
runs-on: ubuntu-latest
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true)
strategy:
matrix:
otp: [23.3, 24.2, 25.3, 26.1]
elixir: [1.12.2, 1.13.4, 1.14.5, 1.15.7]
exclude:
- elixir: 1.12.2
otp: 25.3
- elixir: 1.12.2
otp: 26.1
- elixir: 1.13.4
otp: 26.1
- elixir: 1.14.5
otp: 26.1
- elixir: 1.15.7
otp: 23.3
fail-fast: false
env:
ELIXIR_VERSION: ${{ matrix.elixir }}
OTP_VERSION: ${{ matrix.otp }}
steps:
- uses: actions/checkout@v2
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- uses: actions/cache@v1
id: cache
with:
path: deps
key: ${{ runner.os }}-mix-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
- name: Install Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: mix deps.get
- name: Run Tests
run: mix test
selenium-v3:
name: Selenium v3 (${{matrix.elixir}}/${{matrix.otp}})
runs-on: ubuntu-latest
timeout-minutes: 30
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true)
strategy:
matrix:
otp: [23.3, 24.2, 25.3, 26.1]
elixir: [1.12.2, 1.13.4, 1.14.5, 1.15.7]
exclude:
- elixir: 1.12.2
otp: 25.3
- elixir: 1.12.2
otp: 26.1
- elixir: 1.13.4
otp: 26.1
- elixir: 1.14.5
otp: 26.1
- elixir: 1.15.7
otp: 23.3
fail-fast: false
env:
WALLABY_DRIVER: selenium
ELIXIR_VERSION: ${{ matrix.elixir }}
OTP_VERSION: ${{ matrix.otp }}
steps:
- uses: actions/checkout@v2
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- uses: actions/cache@v1
id: cache
with:
path: deps
key: ${{ runner.os }}-mix-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
- name: Install Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: mix deps.get
- name: Start Selenium
run: |
wget https://github.com/SeleniumHQ/selenium/releases/download/selenium-3.141.59/selenium-server-standalone-3.141.59.jar
java -jar ./selenium-server-standalone-3.141.59.jar > selenium-${{matrix.elixir}}.log 2>&1 &
- name: Run Tests
run: mix test || mix test --failed || mix test --failed
- uses: actions/upload-artifact@v2
if: always()
with:
name: Selenium Logs
path: ./selenium-${{matrix.elixir}}.log
selenium-v4:
name: Selenium V4
runs-on: ubuntu-latest
timeout-minutes: 30
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true)
env:
WALLABY_DRIVER: selenium
strategy:
matrix:
otp: [23.3, 24.2, 25.3, 26.1]
elixir: [1.12.2, 1.13.4, 1.14.5, 1.15.7]
exclude:
- elixir: 1.12.2
otp: 25.3
- elixir: 1.12.2
otp: 26.1
- elixir: 1.13.4
otp: 26.1
- elixir: 1.14.5
otp: 26.1
- elixir: 1.15.7
otp: 23.3
fail-fast: false
steps:
- uses: actions/checkout@v2
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- uses: actions/cache@v1
id: cache
with:
path: deps
key: ${{ runner.os }}-mix-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
- run: mix local.hex --force
- run: mix local.rebar --force
- name: Install Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: mix deps.get
- name: Start Selenium
run: java -Djava.awt.headless=true -jar "$SELENIUM_JAR_PATH" standalone > selenium-v4-${{matrix.elixir}}.log 2>&1 &
- name: Run Tests
run: mix test || mix test --failed || mix test --failed
- uses: actions/upload-artifact@v2
if: always()
with:
name: Selenium Logs
path: ./selenium-mac.log
selenium-v4-mac:
name: Selenium v4 macOS
runs-on: macos-latest
timeout-minutes: 30
if: github.event_name == 'push' || (github.event_name == 'pull_request' && github.event.pull_request.head.repo.fork == true)
env:
WALLABY_DRIVER: selenium
steps:
- uses: actions/checkout@v2
- run: brew install erlang elixir
- uses: actions/cache@v1
id: cache
with:
path: deps
key: ${{ runner.os }}-mix-${{ hashFiles(format('{0}{1}', github.workspace, '/mix.lock')) }}
- run: mix local.hex --force
- run: mix local.rebar --force
- name: Install Dependencies
if: steps.cache.outputs.cache-hit != 'true'
run: mix deps.get
- name: Start Selenium
run: selenium-server standalone > selenium-mac.log 2>&1 &
- name: Run Tests
run: mix test || mix test --failed || mix test --failed
- uses: actions/upload-artifact@v2
if: always()
with:
name: Selenium Logs
path: ./selenium-mac.log