Skip to content

[WIP] Expand AST using Macro.Env API #515

[WIP] Expand AST using Macro.Env API

[WIP] Expand AST using Macro.Env API #515

Workflow file for this run

name: CI
on:
pull_request:
push:
branches:
- master
jobs:
mix_test:
name: mix test (Elixir ${{matrix.elixir}} | Erlang/OTP ${{matrix.otp}})
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
include:
- elixir: 1.12.x
otp: 22.x
tests_may_fail: false
- elixir: 1.12.x
otp: 23.x
tests_may_fail: false
- elixir: 1.12.x
otp: 24.x
tests_may_fail: false
- elixir: 1.13.x
otp: 22.x
tests_may_fail: false
- elixir: 1.13.x
otp: 23.x
tests_may_fail: false
- elixir: 1.13.x
otp: 24.x
tests_may_fail: false
- elixir: 1.13.x
otp: 25.x
tests_may_fail: false
- elixir: 1.14.x
otp: 23.x
tests_may_fail: false
- elixir: 1.14.x
otp: 24.x
tests_may_fail: false
- elixir: 1.14.x
otp: 25.x
tests_may_fail: false
- elixir: 1.14.x
otp: 26.x
tests_may_fail: false
- elixir: 1.15.x
otp: 24.x
tests_may_fail: false
- elixir: 1.15.x
otp: 25.x
tests_may_fail: false
- elixir: 1.15.x
otp: 26.x
tests_may_fail: false
- elixir: 1.16.x
otp: 24.x
tests_may_fail: false
- elixir: 1.16.x
otp: 25.x
tests_may_fail: false
- elixir: 1.16.x
otp: 26.x
tests_may_fail: false
env:
MIX_ENV: test
steps:
- uses: actions/checkout@v4
- 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
- run: mix test || ${{ matrix.tests_may_fail }}
mix_test_windows:
name: mix test windows (Elixir ${{matrix.elixir}} | Erlang/OTP ${{matrix.otp}})
runs-on: windows-2019
strategy:
fail-fast: false
matrix:
include:
- elixir: 1.12.x
otp: 22.x
tests_may_fail: false
- elixir: 1.12.x
otp: 23.x
tests_may_fail: false
- elixir: 1.12.x
otp: 24.x
tests_may_fail: false
- elixir: 1.13.x
otp: 22.x
tests_may_fail: false
- elixir: 1.13.x
otp: 23.x
tests_may_fail: false
- elixir: 1.13.x
otp: 24.x
tests_may_fail: false
- elixir: 1.13.x
otp: 25.x
tests_may_fail: false
- elixir: 1.14.x
otp: 23.x
tests_may_fail: false
- elixir: 1.14.x
otp: 24.x
tests_may_fail: false
- elixir: 1.14.x
otp: 25.x
tests_may_fail: false
- elixir: 1.14.x
otp: 26.x
tests_may_fail: false
- elixir: 1.15.x
otp: 24.x
tests_may_fail: false
- elixir: 1.15.x
otp: 25.x
tests_may_fail: false
- elixir: 1.15.x
otp: 26.x
tests_may_fail: false
- elixir: 1.16.x
otp: 24.x
tests_may_fail: false
- elixir: 1.16.x
otp: 25.x
tests_may_fail: false
- elixir: 1.16.x
otp: 26.x
tests_may_fail: false
env:
MIX_ENV: test
steps:
- name: Set git to use original line ending
run: |
git config --global core.autocrlf false
- uses: actions/checkout@v4
- 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
- run: mix test
if: ${{!matrix.tests_may_fail}}
- run: mix test || type nul
if: ${{matrix.tests_may_fail}}
static_analysis:
name: static analysis (Elixir ${{matrix.elixir}} | Erlang/OTP ${{matrix.otp}})
runs-on: ubuntu-20.04
strategy:
matrix:
include:
- elixir: 1.16.x
otp: 26.x
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- name: Cache build artifacts
uses: actions/cache@v4
with:
path: |
~/.hex
~/.mix
_build
key: ${{ matrix.otp }}-${{ matrix.elixir }}-static_analysis-build
- name: Install Dependencies
run: |
mix local.hex --force
mix local.rebar --force
mix deps.get
- name: Restore timestamps to prevent unnecessary recompilation
run: IFS=$'\n'; for f in $(git ls-files); do touch -d "$(git log -n 1 --pretty='%cI' -- $f)" "$f"; done
- run: mix format --check-formatted
- run: mix credo --all --strict || true
- run: mix dialyzer || true