Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/actions/setup-elixir
Set up your GitHub Actions workflow with OTP and Elixir
https://github.com/actions/setup-elixir
Last synced: 4 months ago
JSON representation
Set up your GitHub Actions workflow with OTP and Elixir
- Host: GitHub
- URL: https://github.com/actions/setup-elixir
- Owner: actions
- License: mit
- Archived: true
- Created: 2019-08-28T14:20:52.000Z (over 5 years ago)
- Default Branch: main
- Last Pushed: 2021-01-19T21:04:47.000Z (almost 4 years ago)
- Last Synced: 2024-09-26T20:03:20.697Z (4 months ago)
- Language: JavaScript
- Homepage:
- Size: 715 KB
- Stars: 154
- Watchers: 9
- Forks: 38
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
- awesome-actions - actions/setup-elixir: Elixir
- fucking-awesome-actions - actions/setup-elixir: Elixir
- awesome-workflows - actions/setup-elixir: Elixir
README
# setup-elixir
**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.**
[![](https://github.com/actions/setup-elixir/workflows/Test/badge.svg)](https://github.com/actions/setup-elixir/actions)
[![](https://github.com/actions/setup-elixir/workflows/Licensed/badge.svg)](https://github.com/actions/setup-elixir/actions)This action sets up an Elixir environment for use in a GitHub Actions
workflow by:- Installing OTP
- Installing Elixir**Note** Currently, this action currently only supports Actions' `ubuntu-` runtimes.
## Usage
See [action.yml](action.yml).
**Note** The OTP release version specification is [relatively
complex](http://erlang.org/doc/system_principles/versions.html#version-scheme).
For best results, we recommend specifying exact OTP and Elixir versions.
However, values like `22.x` are also accepted, and we attempt to resolve them
according to semantic versioning rules.Additionally, it is recommended that one specifies OTP and Elixir versions
using YAML strings, as these examples do, so that numbers like `23.0` don't
end up being parsed as `23`, which is not equivalent.For pre-release Elixir versions, such as `1.11.0-rc.0`, use the full version
specifier (`1.11.0-rc.0`). Pre-release versions are opt-in, so `1.11.x` will
not match a pre-release.### Basic example
```yaml
on: pushjobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-elixir@v1
with:
otp-version: '22.2'
elixir-version: '1.9.4'
- run: mix deps.get
- run: mix test
```### Matrix example
```yaml
on: pushjobs:
test:
runs-on: ubuntu-latest
name: OTP ${{matrix.otp}} / Elixir ${{matrix.elixir}}
strategy:
matrix:
otp: ['20.3', '21.3', '22.2']
elixir: ['1.8.2', '1.9.4']
steps:
- uses: actions/checkout@v2
- uses: actions/setup-elixir@v1
with:
otp-version: ${{matrix.otp}}
elixir-version: ${{matrix.elixir}}
- run: mix deps.get
- run: mix test
```### Phoenix example
```yaml
on: pushjobs:
test:
runs-on: ubuntu-latestservices:
db:
image: postgres:11
ports: ['5432:5432']
env:
POSTGRES_PASSWORD: postgres
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5steps:
- uses: actions/checkout@v2
- uses: actions/setup-elixir@v1
with:
otp-version: '22.2'
elixir-version: '1.9.4'
- run: mix deps.get
- run: mix test
```#### Authenticating with Postgres in Phoenix
When using the Phoenix example above, the `postgres` container has some
default authentication set up. Specifically, it expects a username of
"postgres", and a password of "postgres". It will be available at
`localhost:5432`.The simplest way of setting these auth values in CI is by checking for the
`GITHUB_ACTIONS` environment variable that is set in all workflows:```elixir
# config/test.exsuse Mix.Config
# Configure the database for local testing
config :app, App.Repo,
database: "my_app_test",
hostname: "localhost",
pool: Ecto.Adapters.SQL.Sandbox# Configure the database for GitHub Actions
if System.get_env("GITHUB_ACTIONS") do
config :app, App.Repo,
username: "postgres",
password: "postgres"
end
```## Matchers
The 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.
## License
The scripts and documentation in this project are released under the [MIT license](LICENSE.md).
## Contributing
Check out [this doc](CONTRIBUTING.md).
## Current Status
This action is in active development.