Github workflow errors out

Background

I have a small elixir project and I am trying to use GithubWorkflow to have a nice pipeline and automate some actions.

Problem

However I can’t even get it started as I get the following error:

 Setup elixir
1s
    AUCTION_HOUSE_TOKEN: ***
Run actions/setup-elixir@v1
  with:
    elixir-version: 1.10-otp-22
    otp-version: 22.1
    install-hex: true
    install-rebar: true
  env:
    COOKIE: ***
    TOKEN: ***
##[error]Cannot read property 'includes' of undefined

Code

I think my workflow might be incorrect, could someone help figure out what’s wrong?

name: build

on:
  push:
    branches: [ master ]
  pull_request:
    branches: [ master ]

env: 
  AUCTION_HOUSE_COOKIE: ${{ secrets.MARKET_MANAGER_WM_COOKIE }}
  AUCTION_HOUSE_TOKEN: ${{ secrets.MARKET_MANAGER_WM_XCSRFTOKEN }}

jobs:

  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Setup elixir
      uses: actions/setup-elixir@v1
      with:
        elixir-version: '1.10-otp-22' # Define the elixir version [required]
        otp-version: '22.1' # Define the OTP version [required]
    - name: Install Dependencies
      run: mix deps.get
    - name: Run Tests
      run: mix test
    - name: Run credo code analyser
      run: mix credo --strict
    - name: Run typechecks
      run: mix dialyzer
    - name: Build executable
      run: mix escript.build
      env: 
        MIX_ENV: prod

Summary

The elixir version in the file was wrong. It should have:

      with:
        elixir-version: '1.10.4 # Define the elixir version [required]
        otp-version: '22.1' # Define the OTP version [required]

Instead of the current content.

RCA

So this one was interesting. When it comes to elixir versions, because I use asdf as my version manager, I am allowed to pick the best version (the most optimized) for the erlang setup I have.

How do I know which elixir version is the best for, lets say, erlang 22.1?
Well, I use bob’s list:

https://bobs-list.kobrakai.de/#version_v1.10

And while this is fine and it does work on my machine and in docker files and so on, Github Action wont accept it. Github Actions takes its elixir version’s from here:

And as you can see, there no official release called “1.10-otp-22”

So, instead of the current content, the file should instead have:

with:
        elixir-version: '1.10.4' # Define the elixir version [required]
        otp-version: '22.1' # Define the OTP version [required]
2 Likes