From 8e42a241ba12c768cb3d29855daf28f3cb0c811e Mon Sep 17 00:00:00 2001 From: Piotr Szeremeta Date: Thu, 9 Apr 2026 15:11:24 +0200 Subject: [PATCH 1/4] Migrate CI from CircleCI to GitHub Actions Replace CircleCI elixir orb with membraneframework-labs/membrane-actions reusable workflows. CI runs on push and can be manually triggered via workflow_dispatch. Hex publish on v* tags using HEX_API_KEY secret. --- .circleci/config.yml | 30 ------------------------------ .github/workflows/ci.yml | 16 ++++++++++++++++ .github/workflows/release.yml | 23 +++++++++++++++++++++++ 3 files changed, 39 insertions(+), 30 deletions(-) delete mode 100644 .circleci/config.yml create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/release.yml diff --git a/.circleci/config.yml b/.circleci/config.yml deleted file mode 100644 index c077fb4..0000000 --- a/.circleci/config.yml +++ /dev/null @@ -1,30 +0,0 @@ -version: 2.1 -orbs: - elixir: membraneframework/elixir@1 - -workflows: - version: 2 - build: - jobs: - - elixir/build_test: - filters: &filters - tags: - only: /v.*/ - - elixir/test: - filters: - <<: *filters - - elixir/lint: - filters: - <<: *filters - - elixir/hex_publish: - requires: - - elixir/build_test - - elixir/test - - elixir/lint - context: - - Deployment - filters: - branches: - ignore: /.*/ - tags: - only: /v.*/ diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..983039e --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,16 @@ +name: CI + +on: + push: + branches: ["**"] + workflow_dispatch: + +jobs: + build_test: + uses: membraneframework/membrane_actions/.github/workflows/build-test.yml@main + + test: + uses: membraneframework/membrane_actions/.github/workflows/test.yml@main + + lint: + uses: membraneframework/membrane_actions/.github/workflows/lint.yml@main diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..edc13ef --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,23 @@ +name: Release + +on: + push: + tags: + - "v*" + workflow_dispatch: + +jobs: + build_test: + uses: membraneframework/membrane_actions/.github/workflows/build-test.yml@main + + test: + uses: membraneframework/membrane_actions/.github/workflows/test.yml@main + + lint: + uses: membraneframework/membrane_actions/.github/workflows/lint.yml@main + + hex_publish: + needs: [build_test, test, lint] + uses: membraneframework/membrane_actions/.github/workflows/hex-publish.yml@main + secrets: + HEX_API_KEY: ${{ secrets.HEX_API_KEY }} From 9be143e9cd001aa94eff6f991779a31db4058174 Mon Sep 17 00:00:00 2001 From: Piotr Szeremeta Date: Mon, 20 Apr 2026 14:05:09 +0200 Subject: [PATCH 2/4] Update mix.lock --- mix.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mix.lock b/mix.lock index 6c71701..d4e2a8b 100644 --- a/mix.lock +++ b/mix.lock @@ -2,7 +2,7 @@ "bunch": {:hex, :bunch, "1.6.1", "5393d827a64d5f846092703441ea50e65bc09f37fd8e320878f13e63d410aec7", [:mix], [], "hexpm", "286cc3add551628b30605efbe2fca4e38cc1bea89bcd0a1a7226920b3364fe4a"}, "bunt": {:hex, :bunt, "1.0.0", "081c2c665f086849e6d57900292b3a161727ab40431219529f13c4ddcf3e7a44", [:mix], [], "hexpm", "dc5f86aa08a5f6fa6b8096f0735c4e76d54ae5c9fa2c143e5a1fc7c1cd9bb6b5"}, "coerce": {:hex, :coerce, "1.0.2", "5ef791040c92baaa5dd344887563faaeac6e6742573a167493294f8af3672bbe", [:mix], [], "hexpm", "0b3451c729571234fdac478636c298e71d1f2ce1243abed5fa43fa3181b980eb"}, - "credo": {:hex, :credo, "1.7.17", "f92b6aa5b26301eaa5a35e4d48ebf5aa1e7094ac00ae38f87086c562caf8a22f", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "1eb5645c835f0b6c9b5410f94b5a185057bcf6d62a9c2b476da971cde8749645"}, + "credo": {:hex, :credo, "1.7.18", "5c5596bf7aedf9c8c227f13272ac499fe8eae6237bd326f2f07dfc173786f042", [:mix], [{:bunt, "~> 0.2.1 or ~> 1.0", [hex: :bunt, repo: "hexpm", optional: false]}, {:file_system, "~> 0.2 or ~> 1.0", [hex: :file_system, repo: "hexpm", optional: false]}, {:jason, "~> 1.0", [hex: :jason, repo: "hexpm", optional: false]}], "hexpm", "a189d164685fd945809e862fe76a7420c4398fa288d76257662aecb909d6b3e5"}, "dialyxir": {:hex, :dialyxir, "1.4.7", "dda948fcee52962e4b6c5b4b16b2d8fa7d50d8645bbae8b8685c3f9ecb7f5f4d", [:mix], [{:erlex, ">= 0.2.8", [hex: :erlex, repo: "hexpm", optional: false]}], "hexpm", "b34527202e6eb8cee198efec110996c25c5898f43a4094df157f8d28f27d9efe"}, "earmark_parser": {:hex, :earmark_parser, "1.4.44", "f20830dd6b5c77afe2b063777ddbbff09f9759396500cdbe7523efd58d7a339c", [:mix], [], "hexpm", "4778ac752b4701a5599215f7030989c989ffdc4f6df457c5f36938cc2d2a2750"}, "erlex": {:hex, :erlex, "0.2.8", "cd8116f20f3c0afe376d1e8d1f0ae2452337729f68be016ea544a72f767d9c12", [:mix], [], "hexpm", "9d66ff9fedf69e49dc3fd12831e12a8a37b76f8651dd21cd45fcf5561a8a7590"}, From 6907867a92f570ae934fd8737c0c4ce73abc5429 Mon Sep 17 00:00:00 2001 From: Piotr Szeremeta Date: Mon, 20 Apr 2026 14:36:51 +0200 Subject: [PATCH 3/4] Fix Elixir 1.19 and OTP 28 compatibility Co-Authored-By: Claude Sonnet 4.6 --- mix.exs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/mix.exs b/mix.exs index 88db996..6041788 100644 --- a/mix.exs +++ b/mix.exs @@ -37,15 +37,16 @@ defmodule Membrane.File.Plugin.Mixfile do # Testing {:mox, "~> 1.0", only: :test}, # Development - {:ex_doc, "~> 0.28", only: :dev, runtime: false}, - {:credo, "~> 1.6", only: :dev, runtime: false}, - {:dialyxir, "~> 1.1", only: :dev, runtime: false} + {:ex_doc, "~> 0.34", only: :dev, runtime: false}, + {:credo, "~> 1.7", only: :dev, runtime: false}, + {:dialyxir, "~> 1.4", only: :dev, runtime: false} ] end defp dialyzer() do opts = [ - flags: [:error_handling] + flags: [:error_handling], + plt_add_apps: [:syntax_tools] ] if System.get_env("CI") == "true" do From 7e502ec9fe12b1a151c3a556263c004aacfd1c90 Mon Sep 17 00:00:00 2001 From: Piotr Szeremeta Date: Thu, 7 May 2026 17:10:04 +0200 Subject: [PATCH 4/4] Relax constraints of support dependencies --- mix.exs | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/mix.exs b/mix.exs index 6041788..d31d11c 100644 --- a/mix.exs +++ b/mix.exs @@ -37,16 +37,15 @@ defmodule Membrane.File.Plugin.Mixfile do # Testing {:mox, "~> 1.0", only: :test}, # Development - {:ex_doc, "~> 0.34", only: :dev, runtime: false}, - {:credo, "~> 1.7", only: :dev, runtime: false}, - {:dialyxir, "~> 1.4", only: :dev, runtime: false} + {:ex_doc, ">= 0.0.0", only: :dev, runtime: false}, + {:credo, ">= 0.0.0", only: :dev, runtime: false}, + {:dialyxir, ">= 0.0.0", only: :dev, runtime: false} ] end defp dialyzer() do opts = [ - flags: [:error_handling], - plt_add_apps: [:syntax_tools] + flags: [:error_handling] ] if System.get_env("CI") == "true" do