Fl4m3Ph03n1x
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
Marked As Solved
Fl4m3Ph03n1x
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:
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]








