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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions