Skip to content

CI env variable displays warning if it's a string #1054

@altdsoy

Description

@altdsoy

Hello,

I'm not sure if the description is good enough, but I'm using a CI tool (Woodpecker CI) that injects the CI ENV variable with a string value.

It seems that when hex is checking its configuration it also checks this ENV.

In the following commit: 5eb05bd , its value is checked against a boolean:

def to_boolean(nil), do: {:ok, nil}
def to_boolean(false), do: {:ok, false}
def to_boolean(true), do: {:ok, true}
def to_boolean("0"), do: {:ok, false}
def to_boolean("1"), do: {:ok, true}
def to_boolean("false"), do: {:ok, false}
def to_boolean("true"), do: {:ok, true}
def to_boolean("FALSE"), do: {:ok, false}
def to_boolean("TRUE"), do: {:ok, true}
def to_boolean(_), do: :error

In my case because I don't have control on this ENV variable, Hex ends up considering it's an error and I'm getting an annoying warning on every mix command in my CI pipeline:

Invalid Hex config, falling back to default. Source: environment variable CI= "woodpecker".

I would like to open a PR but I wanted to discuss for an idiomatic way to solve this.

We can simply assume a truthy value for this ENV in particular (maybe using something like to_truthy_boolean) ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions