-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
## Description This PR renames and refactors the project's GitHub Actions CI workflow. The updated workflow will now run on: - pushes to `main`, - pull requests against `main`, and - by manual invocation via GitHub's UI Notable changes to the workflow include: - refactors existing Ubuntu test job - adds a new macOS test job - specifies oldest and newest Elixir and Erlang combo in the matrix - use latest [actions/checkout](https://github.com/actions/checkout) - sets job name to use matrix values for clarity The macOS job takes a necessarily different tact for installing Erlang and Elixir owing to the underlying `erlef/setup-beam` workflow not (yet) supporting macOS (see erlef/setup-beam#54).
- Loading branch information
Showing
3 changed files
with
75 additions
and
54 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
name: CI | ||
|
||
on: | ||
push: | ||
branches: ["main"] | ||
pull_request: | ||
branches: ["main"] | ||
workflow_dispatch: | ||
|
||
env: | ||
MIX_ENV: test | ||
|
||
jobs: | ||
test_macos: | ||
name: Elixir ${{ matrix.pair.elixir }} OTP ${{ matrix.pair.otp }} (macOS) | ||
runs-on: macos-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
pair: | ||
- elixir: "1.13" | ||
otp: "24.3.4.10" | ||
- elixir: "1.17" | ||
otp: "27.0.1" | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Generate .tool-versions file | ||
run: | | ||
echo "elixir ${{ matrix.pair.elixir }}" >> .tool-versions | ||
echo "erlang ${{ matrix.pair.otp }}" >> .tool-versions | ||
cat .tool-versions | ||
- uses: asdf-vm/actions/install@v3 | ||
- name: Install Hex package manager | ||
run: mix local.hex --force | ||
- name: Install dependencies | ||
run: mix deps.get | ||
- run: mix test | ||
test_ubuntu: | ||
name: Elixir ${{ matrix.pair.elixir }} OTP ${{ matrix.pair.otp }} (Ubuntu) | ||
runs-on: ubuntu-latest | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- pair: | ||
elixir: "1.13" | ||
otp: "24.3.4.10" | ||
- pair: | ||
elixir: "1.17" | ||
otp: "27.0.1" | ||
lint: lint | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- uses: erlef/setup-beam@main | ||
with: | ||
otp-version: ${{ matrix.pair.otp }} | ||
elixir-version: ${{ matrix.pair.elixir }} | ||
version-type: strict | ||
- uses: actions/cache@v4 | ||
with: | ||
path: deps | ||
key: mix-deps-${{ hashFiles('**/mix.lock') }} | ||
- run: mix deps.get --check-locked | ||
- run: mix format --check-formatted | ||
if: ${{ matrix.lint }} | ||
- run: mix deps.unlock --check-unused | ||
if: ${{ matrix.lint }} | ||
- run: mix deps.compile | ||
- run: mix compile --warnings-as-errors | ||
if: ${{ matrix.lint }} | ||
- run: mix test | ||
if: ${{ ! matrix.lint }} | ||
- run: mix test --warnings-as-errors | ||
if: ${{ matrix.lint }} |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters