Skip to content

Commit

Permalink
GitHub Actions for CI (#23)
Browse files Browse the repository at this point in the history
* Added GitHub Actions manifest for CI

* Bumped minimum elixir version
  • Loading branch information
kieraneglin authored Jul 1, 2024
1 parent 7ca0d4f commit 7104256
Show file tree
Hide file tree
Showing 6 changed files with 71 additions and 64 deletions.
66 changes: 66 additions & 0 deletions .github/workflows/lint_and_test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
name: Perform linting and run tests

on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:

jobs:
check-formatting:
runs-on: ubuntu-latest
if: "! contains(toJSON(github.event.commits.*.message), '[skip ci]')"
name: Check formatting
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Setup Elixir and OTP
uses: erlef/setup-beam@v1
with:
otp-version: "27.x"
elixir-version: "1.17.x"

- name: Install and compile dependencies
run: mix deps.get && mix deps.compile &> /dev/null

- name: Check formatting
run: mix format --check-formatted

test-matrix:
runs-on: ubuntu-latest
if: "! contains(toJSON(github.event.commits.*.message), '[skip ci]')"
name: Test on OTP ${{ matrix.versions.otp }} / Elixir ${{ matrix.versions.elixir }}
env:
MIX_ENV: test
strategy:
matrix:
versions:
[
{ otp: "24.x", elixir: "1.13.x" },
{ otp: "25.x", elixir: "1.14.x" },
{ otp: "26.x", elixir: "1.15.x" },
{ otp: "26.x", elixir: "1.16.x" },
{ otp: "27.x", elixir: "1.17.x" },
]
steps:
- name: Checkout code
uses: actions/checkout@v3

- name: Setup Elixir and OTP
uses: erlef/setup-beam@v1
with:
otp-version: ${{ matrix.versions.otp }}
elixir-version: ${{ matrix.versions.elixir }}

- name: Install and compile dependencies
run: mix deps.get && mix deps.compile &> /dev/null

- name: Compile project with warnings as errors
run: mix compile --warnings-as-errors

- name: Run tests
run: mix test
34 changes: 0 additions & 34 deletions .travis.yml

This file was deleted.

2 changes: 1 addition & 1 deletion lib/rewire/cover.ex
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ defmodule Rewire.Cover do
{_, binary, _} = :code.get_object_code(:cover)
{:ok, {_, [{_, {_, abstract_code}}]}} = :beam_lib.chunks(binary, [:abstract_code])
{:ok, module, binary} = :compile.forms(abstract_code, [:export_all])
:code.load_binary(module, '', binary)
:code.load_binary(module, ~c"", binary)
end

defp replace_coverdata!(rewired, original_module) do
Expand Down
2 changes: 1 addition & 1 deletion lib/rewire/utils.ex
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ defmodule Rewire.Utils do
end

def debug_log(%{debug: true, mod: mod}, message) do
IO.puts(IO.ANSI.format([:light_blue, "[Rewire] [#{mod}] #{message}"]))
IO.puts(IO.ANSI.format([:light_blue, "[Rewire] [#{mod}] #{message}"], true))
end

def debug_log(_opts, _message), do: :ok
Expand Down
2 changes: 1 addition & 1 deletion mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ defmodule Rewire.MixProject do
[
app: :rewire,
version: "0.9.0",
elixir: "~> 1.7",
elixir: "~> 1.13",
start_permanent: Mix.env() == :prod,
elixirc_paths: elixirc_paths(Mix.env()),
deps: deps(),
Expand Down
29 changes: 2 additions & 27 deletions test/rewire_debug_test.exs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ defmodule RewireDebugTest do
|> String.replace(":\"::\"", ":::")
|> String.split("\n")

common = [
expected = [
"\e[94m[Rewire] [Elixir.Rewire.Hello] old name: [:Rewire, :Hello]\e[0m",
"\e[94m[Rewire] [Elixir.Rewire.Hello] new name: [:Rewire, :Hello, :R]\e[0m",
"\e[94m[Rewire] [Elixir.Rewire.Hello] alias: :Hello\e[0m",
Expand Down Expand Up @@ -85,13 +85,7 @@ defmodule RewireDebugTest do
" ]}",
"",
"\e[0m",
"\e[94m[Rewire] [Elixir.Rewire.Hello] new code:"
]

# The structure changed a little bit for this part in Elixir 1.13, so we
# have different expectations depending on the currently running version.

current_structure = [
"\e[94m[Rewire] [Elixir.Rewire.Hello] new code:",
"",
"defmodule Rewire.Hello.R do",
" [",
Expand All @@ -108,25 +102,6 @@ defmodule RewireDebugTest do
""
]

pre_elixir_1_13 = [
"",
"defmodule(Rewire.Hello.R) do",
" [def(__rewire__()) do",
" %{original: [:Rewire, :Hello], rewired: %{}}",
" end, @callback(hello() :: String.t()), def(hello()) do",
" \"hello\"",
" end]",
"end",
"\e[0m",
""
]

expected =
case Version.compare(System.version(), "1.13.0") do
:lt -> common ++ pre_elixir_1_13
_ -> common ++ current_structure
end

assert actual == expected
end
end

0 comments on commit 7104256

Please sign in to comment.