Fix OTP 26 #926
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Torch Main CI | |
on: | |
pull_request: | |
branches: [master, main, v5] | |
types: [opened, edited, reopened, synchronize] | |
push: | |
branches: [master, main, v5] | |
tags: | |
- v[5-9].[0-9]+.[0-9]+ | |
jobs: | |
mix_test: | |
name: mix test (Elixir ${{matrix.elixir}} | OTP ${{matrix.otp}}) | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- elixir: 1.14.x | |
otp: 23.x | |
- elixir: 1.14.x | |
otp: 24.x | |
- elixir: 1.14.x | |
otp: 25.x | |
- elixir: 1.15.x | |
otp: 24.x | |
- elixir: 1.15.x | |
otp: 25.x | |
- elixir: 1.15.x | |
otp: 26.x | |
- elixir: 1.16.x | |
otp: 24.x | |
- elixir: 1.16.x | |
otp: 25.x | |
- elixir: 1.16.x | |
otp: 26.x | |
services: | |
db: | |
image: postgres:latest | |
env: | |
POSTGRES_USER: postgres | |
POSTGRES_PASSWORD: postgres | |
POSTGRES_DB: example_test | |
ports: ["5432:5432"] | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
env: | |
MIX_ENV: test | |
DATABASE_POSTGRESQL_USERNAME: postgres | |
DATABASE_POSTGRESQL_PASSWORD: postgres | |
PGHOST: postgres | |
PGUSER: postgres | |
ImageOS: ubuntu20 # run on ubuntu-20.04 (which supports Erlang/OTP 20-25) | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '18' | |
cache: 'npm' | |
cache-dependency-path: assets/package-lock.json | |
- uses: erlef/setup-beam@v1 | |
with: | |
otp-version: ${{matrix.otp}} | |
elixir-version: ${{matrix.elixir}} | |
- name: Cache mix deps | |
uses: actions/cache@v4 | |
with: | |
path: | | |
deps | |
_build | |
key: deps-${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}-${{ hashFiles('**/mix.lock') }} | |
restore-keys: | | |
deps-${{ runner.os }}-${{ matrix.otp }}-${{ matrix.elixir }}- | |
- name: Get NPM cache directory | |
id: npm-cache-dir | |
shell: bash | |
run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT} | |
- name: Get node deps | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.npm-cache-dir.outputs.dir }} | |
key: nodejs-${{ runner.os }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
nodejs-${{ runner.os }}- | |
- name: Install hex deps | |
run: | | |
mix local.hex --force | |
mix local.rebar --force | |
- name: Install mix deps | |
run: | | |
mix deps.get --only test | |
- name: Mix compile | |
run: mix compile --warnings-as-errors --force | |
- name: Credo lint | |
run: mix credo --strict --ignore design,consistency | |
- name: Build docs | |
run: mix docs | |
- name: Mix test | |
run: mix test | |
env: | |
MIX_ENV: test | |
- name: coveralls | |
run: mix coveralls.github | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Install Node Deps | |
run: npm install | |
working-directory: ./assets | |
- name: Build Node assets | |
run: npm run compile | |
working-directory: ./assets | |
- name: Run phoenix support app tests | |
run: bin/setup | |
- run: mix dialyzer --halt-exist-status | |
if: matrix.static_analysis |