summary refs log tree commit diff
path: root/pkgs/development/arduino
diff options
context:
space:
mode:
authorRyan Mulligan <ryan@ryantm.com>2020-12-03 18:41:02 -0800
committerRyan Mulligan <ryan@ryantm.com>2020-12-09 11:43:29 -0800
commita42468954dbd0e04b9acef47b253f62b294ef2cc (patch)
treedcd97198df330968a06575e6b776ef2b87b73bc2 /pkgs/development/arduino
parent41cb91fd896c4dc6bd33661a42adb2c7d1ef1701 (diff)
downloadnixpkgs-a42468954dbd0e04b9acef47b253f62b294ef2cc.tar
nixpkgs-a42468954dbd0e04b9acef47b253f62b294ef2cc.tar.gz
nixpkgs-a42468954dbd0e04b9acef47b253f62b294ef2cc.tar.bz2
nixpkgs-a42468954dbd0e04b9acef47b253f62b294ef2cc.tar.lz
nixpkgs-a42468954dbd0e04b9acef47b253f62b294ef2cc.tar.xz
nixpkgs-a42468954dbd0e04b9acef47b253f62b294ef2cc.tar.zst
nixpkgs-a42468954dbd0e04b9acef47b253f62b294ef2cc.zip
arduino-ci: init at 0.1.0
arduino-ci allows you to quickly add continuous integration (CI) tests
to Arduino libraries. It uses arduino-cli to install dependencies and
then it compiles every example with every board.
Diffstat (limited to 'pkgs/development/arduino')
-rw-r--r--pkgs/development/arduino/arduino-ci/default.nix46
1 files changed, 46 insertions, 0 deletions
diff --git a/pkgs/development/arduino/arduino-ci/default.nix b/pkgs/development/arduino/arduino-ci/default.nix
new file mode 100644
index 00000000000..cdc6cb8ccb6
--- /dev/null
+++ b/pkgs/development/arduino/arduino-ci/default.nix
@@ -0,0 +1,46 @@
+{ stdenv, fetchFromGitHub,  makeWrapper, arduino-cli, ruby, python3, patchelf }:
+
+let
+
+  runtimePath = stdenv.lib.makeBinPath [
+    arduino-cli
+    (python3.withPackages (ps: [ ps.pyserial ])) # required by esp32 core
+    patchelf # required by esp32 core
+  ];
+
+in
+stdenv.mkDerivation rec {
+  pname = "arduino-ci";
+  version = "0.1.0";
+
+  src = fetchFromGitHub {
+    owner  = "pololu";
+    repo   = "arduino-ci";
+    rev    = "v${version}";
+    sha256 = "sha256-uLCLupzJ446WcxXZtzJk1wnae+k1NTSy0cGHLqW7MZU=";
+  };
+
+  nativeBuildInputs = [ makeWrapper ];
+
+  installPhase = ''
+    runHook preInstall
+
+    mkdir -p $out/bin
+    install $src/ci.rb $out/bin/arduino-ci
+
+    runHook postInstall
+  '';
+
+  fixupPhase = ''
+    substituteInPlace $out/bin/arduino-ci --replace "/usr/bin/env nix-shell" "${ruby}/bin/ruby"
+    wrapProgram $out/bin/arduino-ci --prefix PATH ":" "${runtimePath}"
+  '';
+
+  meta = with stdenv.lib; {
+    description = "CI for Arduino Libraries";
+    homepage = src.meta.homepage;
+    license = licenses.mit;
+    maintainers = with maintainers; [ ryantm ];
+    platforms = platforms.unix;
+  };
+}