diff --git a/.github/workflows/build_elixir_latest.yml b/.github/workflows/build_elixir_latest.yml
new file mode 100644
index 0000000..5ae8763
--- /dev/null
+++ b/.github/workflows/build_elixir_latest.yml
@@ -0,0 +1,17 @@
+# ' ' suffix for the badge status
+name: "Build 1.18/26 "
+
+on:
+ push:
+ branches:
+ - '*'
+ pull_request:
+ branches:
+ - '*'
+
+jobs:
+ elixir_otp_latest:
+ uses: ./.github/workflows/build_reusable.yml
+ with:
+ elixir-version: 1.18
+ otp-version: 26
diff --git a/.github/workflows/build_elixir_old.yml b/.github/workflows/build_elixir_old.yml
new file mode 100644
index 0000000..5432522
--- /dev/null
+++ b/.github/workflows/build_elixir_old.yml
@@ -0,0 +1,17 @@
+# ' ' suffix for the badge status
+name: "Build 1.13/24 "
+
+on:
+ push:
+ branches:
+ - '*'
+ pull_request:
+ branches:
+ - '*'
+
+jobs:
+ elixir_otp_latest:
+ uses: ./.github/workflows/build_reusable.yml
+ with:
+ elixir-version: 1.13
+ otp-version: 24
diff --git a/.github/workflows/build_elixir_recent.yml b/.github/workflows/build_elixir_recent.yml
new file mode 100644
index 0000000..7387cc5
--- /dev/null
+++ b/.github/workflows/build_elixir_recent.yml
@@ -0,0 +1,17 @@
+# ' ' suffix for the badge status
+name: "Build 1.16/25 "
+
+on:
+ push:
+ branches:
+ - '*'
+ pull_request:
+ branches:
+ - '*'
+
+jobs:
+ elixir_otp_latest:
+ uses: ./.github/workflows/build_reusable.yml
+ with:
+ elixir-version: 1.16
+ otp-version: 25
diff --git a/.github/workflows/build_reusable.yml b/.github/workflows/build_reusable.yml
new file mode 100644
index 0000000..341258b
--- /dev/null
+++ b/.github/workflows/build_reusable.yml
@@ -0,0 +1,30 @@
+name: Build CI Reusable
+
+on:
+ workflow_call:
+ inputs:
+ elixir-version:
+ required: true
+ type: string
+ otp-version:
+ required: true
+ type: string
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v3
+
+ - name: Setup Elixir
+ uses: erlef/setup-beam@v1
+ with:
+ elixir-version: ${{ inputs.elixir-version }}
+ otp-version: ${{ inputs.otp-version }}
+
+ - name: Install dependencies
+ run: mix deps.get
+
+ - name: Run compilation with warnings as errors
+ run: mix compile --warnings-as-errors
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 7b7bf20..44a10b9 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -15,7 +15,7 @@ jobs:
strategy:
matrix:
os: ["ubuntu-20.04"]
- elixir: ["1.15"]
+ elixir: ["1.15", "1.18"]
otp: ["26"]
steps:
- uses: actions/checkout@v3
@@ -41,11 +41,13 @@ jobs:
fail-fast: false
matrix:
os: ["ubuntu-20.04"]
- elixir: ["1.15", "1.14", "1.13"]
+ elixir: ["1.18", "1.16", "1.15", "1.14", "1.13"]
otp: ["26", "25", "24"]
exclude:
- elixir: "1.13"
otp: "26"
+ - elixir: "1.18"
+ otp: "24"
steps:
- uses: actions/checkout@v3
- uses: erlef/setup-beam@v1
@@ -59,5 +61,5 @@ jobs:
restore-keys: ${{ matrix.os }}-otp_${{ matrix.otp }}-elixir_${{ matrix.elixir }}-mix_
- run: mix deps.get --only test
- run: mix deps.compile
- - run: mix compile
+ - run: mix compile --warnings-as-errors
- run: mix test
diff --git a/README.md b/README.md
index 9512d9e..c6f3939 100644
--- a/README.md
+++ b/README.md
@@ -2,11 +2,11 @@
# ExImageInfo
-[![Elixir](https://img.shields.io/badge/made_in-elixir-9900cc.svg?style=flat-square)](http://elixir-lang.org) [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://raw.githubusercontent.com/Group4Layers/ex_image_info/master/LICENSE.md)
+[![Elixir](https://img.shields.io/badge/made_in-elixir-9900cc.svg?style=flat-square)](http://elixir-lang.org) [![License](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://raw.githubusercontent.com/Group4Layers/ex_image_info/master/LICENSE.md)
ExImageInfo is an Elixir library to parse images (binaries) and get the dimensions (size), detected mime-type and overall validity for a set of image formats. It is the fastest and supports multiple formats.
-Online tools: [![Build Status](https://travis-ci.org/Group4Layers/ex_image_info.svg?branch=master)](https://travis-ci.org/Group4Layers/ex_image_info) [![Coverage Status](https://coveralls.io/repos/github/Group4Layers/ex_image_info/badge.svg?branch=master)](https://coveralls.io/github/Group4Layers/ex_image_info?branch=master) [![SourceLevel](https://app.sourcelevel.io/github/Group4Layers/-/ex_image_info.svg)](https://app.sourcelevel.io/github/Group4Layers/-/ex_image_info) [![Inline docs](http://inch-ci.org/github/Group4Layers/ex_image_info.svg)](http://inch-ci.org/github/Group4Layers/ex_image_info)
+Status: [![Elixir 1.18 / OTP 26](https://github.com/Group4Layers/ex_image_info/actions/workflows/build_elixir_latest.yml/badge.svg)](https://github.com/Group4Layers/ex_image_info/actions/workflows/build_elixir_latest.yml) [![Elixir 1.16 / OTP 25](https://github.com/Group4Layers/ex_image_info/actions/workflows/build_elixir_recent.yml/badge.svg)](https://github.com/Group4Layers/ex_image_info/actions/workflows/build_elixir_recent.yml) [![Elixir 1.13 / OTP 24](https://github.com/Group4Layers/ex_image_info/actions/workflows/build_elixir_old.yml/badge.svg)](https://github.com/Group4Layers/ex_image_info/actions/workflows/build_elixir_old.yml) [![Coverage Status](https://coveralls.io/repos/github/Group4Layers/ex_image_info/badge.svg?branch=master)](https://coveralls.io/github/Group4Layers/ex_image_info?branch=master) [![Inline docs](http://inch-ci.org/github/Group4Layers/ex_image_info.svg)](http://inch-ci.org/github/Group4Layers/ex_image_info)
### [GitHub repo](https://github.com/Group4Layers/ex_image_info) [Docs](https://group4layers.github.io/ex_image_info) [Hex.pm package](https://hex.pm/packages/ex_image_info)
diff --git a/docs/.build b/docs/.build
index 32e268a..5903897 100644
--- a/docs/.build
+++ b/docs/.build
@@ -1,17 +1,30 @@
-dist/app-240d7fc7e5.css
-dist/app-a0c90688fa.js
-fonts/icomoon.eot
-fonts/icomoon.svg
-fonts/icomoon.ttf
-fonts/icomoon.woff
-assets/ex_image_info_benchmarks.png
-dist/sidebar_items-d2ff24ea4e.js
+404.html
+ExImageInfo.html
api-reference.html
-readme.html
-license.html
+assets
+assets/ex_image_info_benchmarks.png
changelog.html
contributors.html
-search.html
-404.html
-ExImageInfo.html
+dist/handlebars.runtime-NWIB6V2M.js
+dist/handlebars.templates-K7URE6B4.js
+dist/html-HJ5ACJPS.js
+dist/html-elixir-QYVRUQZX.css
+dist/inconsolata-latin-400-normal-RGKDDNDD.woff2
+dist/inconsolata-latin-700-normal-DTS2D7TO.woff2
+dist/inconsolata-latin-ext-400-normal-K7HVGTP7.woff2
+dist/inconsolata-latin-ext-700-normal-4MPBLFZC.woff2
+dist/inconsolata-vietnamese-400-normal-IGQPHHJH.woff2
+dist/inconsolata-vietnamese-700-normal-LHEGSN35.woff2
+dist/lato-latin-300-normal-YUMVEFOL.woff2
+dist/lato-latin-400-normal-W7754I4D.woff2
+dist/lato-latin-700-normal-2XVSBPG4.woff2
+dist/lato-latin-ext-300-normal-VPGGJKJL.woff2
+dist/lato-latin-ext-400-normal-N27NCBWW.woff2
+dist/lato-latin-ext-700-normal-Q2L5DVMW.woff2
+dist/remixicon-NKANDIL5.woff2
+dist/search_data-1B142127.js
+dist/sidebar_items-A9682721.js
index.html
+license.html
+readme.html
+search.html
diff --git a/docs/404.html b/docs/404.html
index 7276fdb..b027c0a 100644
--- a/docs/404.html
+++ b/docs/404.html
@@ -4,82 +4,156 @@
-
-