{"id":13529277,"url":"https://github.com/actions/setup-elixir","last_synced_at":"2025-10-08T05:30:38.770Z","repository":{"id":54956545,"uuid":"204949786","full_name":"actions/setup-elixir","owner":"actions","description":"Set up your GitHub Actions workflow with OTP and Elixir","archived":true,"fork":false,"pushed_at":"2021-01-19T21:04:47.000Z","size":732,"stargazers_count":154,"open_issues_count":3,"forks_count":38,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-06-29T15:04:11.783Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/actions.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-08-28T14:20:52.000Z","updated_at":"2025-05-29T16:58:30.000Z","dependencies_parsed_at":"2022-11-23T11:49:50.726Z","dependency_job_id":null,"html_url":"https://github.com/actions/setup-elixir","commit_stats":{"total_commits":75,"total_committers":10,"mean_commits":7.5,"dds":0.2533333333333333,"last_synced_commit":"a0a26e419703f3172225c80cba87a81ee8e40795"},"previous_names":[],"tags_count":15,"template":false,"template_full_name":null,"purl":"pkg:github/actions/setup-elixir","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actions%2Fsetup-elixir","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actions%2Fsetup-elixir/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actions%2Fsetup-elixir/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actions%2Fsetup-elixir/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/actions","download_url":"https://codeload.github.com/actions/setup-elixir/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/actions%2Fsetup-elixir/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278892043,"owners_count":26063919,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-08T02:00:06.501Z","response_time":56,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T07:00:34.996Z","updated_at":"2025-10-08T05:30:38.508Z","avatar_url":"https://github.com/actions.png","language":"JavaScript","funding_links":[],"categories":["Official Resources"],"sub_categories":["Official Actions"],"readme":"# setup-elixir\n\n**Please note: This repository is currently unmaintained by a team of developers at GitHub. It is now maintained by the [Erlang Ecosystem Foundation](https://erlef.org) at [erlef/setup-elixir](https://github.com/erlef/setup-elixir). Rather than using actions/setup-elixir, please begin referring to that action in your workflows, instead.**\n\n[![](https://github.com/actions/setup-elixir/workflows/Test/badge.svg)](https://github.com/actions/setup-elixir/actions)\n[![](https://github.com/actions/setup-elixir/workflows/Licensed/badge.svg)](https://github.com/actions/setup-elixir/actions)\n\nThis action sets up an Elixir environment for use in a GitHub Actions\nworkflow by:\n\n- Installing OTP\n- Installing Elixir\n\n**Note** Currently, this action currently only supports Actions' `ubuntu-` runtimes.\n\n## Usage\n\nSee [action.yml](action.yml).\n\n**Note** The OTP release version specification is [relatively\ncomplex](http://erlang.org/doc/system_principles/versions.html#version-scheme).\nFor best results, we recommend specifying exact OTP and Elixir versions.\nHowever, values like `22.x` are also accepted, and we attempt to resolve them\naccording to semantic versioning rules.\n\nAdditionally, it is recommended that one specifies OTP and Elixir versions\nusing YAML strings, as these examples do, so that numbers like `23.0` don't\nend up being parsed as `23`, which is not equivalent.\n\nFor pre-release Elixir versions, such as `1.11.0-rc.0`, use the full version\nspecifier (`1.11.0-rc.0`). Pre-release versions are opt-in, so `1.11.x` will\nnot match a pre-release.\n\n### Basic example\n\n```yaml\non: push\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v2\n      - uses: actions/setup-elixir@v1\n        with:\n          otp-version: '22.2'\n          elixir-version: '1.9.4'\n      - run: mix deps.get\n      - run: mix test\n```\n\n### Matrix example\n\n```yaml\non: push\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n    name: OTP ${{matrix.otp}} / Elixir ${{matrix.elixir}}\n    strategy:\n      matrix:\n        otp: ['20.3', '21.3', '22.2']\n        elixir: ['1.8.2', '1.9.4']\n    steps:\n      - uses: actions/checkout@v2\n      - uses: actions/setup-elixir@v1\n        with:\n          otp-version: ${{matrix.otp}}\n          elixir-version: ${{matrix.elixir}}\n      - run: mix deps.get\n      - run: mix test\n```\n\n### Phoenix example\n\n```yaml\non: push\n\njobs:\n  test:\n    runs-on: ubuntu-latest\n\n    services:\n      db:\n        image: postgres:11\n        ports: ['5432:5432']\n        env:\n          POSTGRES_PASSWORD: postgres\n        options: \u003e-\n          --health-cmd pg_isready\n          --health-interval 10s\n          --health-timeout 5s\n          --health-retries 5\n\n    steps:\n      - uses: actions/checkout@v2\n      - uses: actions/setup-elixir@v1\n        with:\n          otp-version: '22.2'\n          elixir-version: '1.9.4'\n      - run: mix deps.get\n      - run: mix test\n```\n\n#### Authenticating with Postgres in Phoenix\n\nWhen using the Phoenix example above, the `postgres` container has some\ndefault authentication set up. Specifically, it expects a username of\n\"postgres\", and a password of \"postgres\". It will be available at\n`localhost:5432`.\n\nThe simplest way of setting these auth values in CI is by checking for the\n`GITHUB_ACTIONS` environment variable that is set in all workflows:\n\n```elixir\n# config/test.exs\n\nuse Mix.Config\n\n# Configure the database for local testing\nconfig :app, App.Repo,\n  database: \"my_app_test\",\n  hostname: \"localhost\",\n  pool: Ecto.Adapters.SQL.Sandbox\n\n# Configure the database for GitHub Actions\nif System.get_env(\"GITHUB_ACTIONS\") do\n  config :app, App.Repo,\n    username: \"postgres\",\n    password: \"postgres\"\nend\n```\n\n## Matchers\n\nThe problem matchers in this repository are adapted from [here](https://github.com/fr1zle/vscode-elixir/blob/45eddb589acd7ac98e0c7305d1c2b24668ca709a/package.json#L70-L118). See [MATCHER_NOTICE](MATCHER_NOTICE.md) for license details.\n\n## License\n\nThe scripts and documentation in this project are released under the [MIT license](LICENSE.md).\n\n## Contributing\n\nCheck out [this doc](CONTRIBUTING.md).\n\n## Current Status\n\nThis action is in active development.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factions%2Fsetup-elixir","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Factions%2Fsetup-elixir","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Factions%2Fsetup-elixir/lists"}