From 401d96de27ddc7d1913ccf9a0f85a3a19eae79dd Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Sat, 14 Dec 2024 10:48:51 +0100 Subject: [PATCH 1/3] nix: initial packaging --- CMakeLists.txt | 2 +- flake.lock | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++ flake.nix | 39 +++++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+), 1 deletion(-) create mode 100644 flake.lock create mode 100644 flake.nix diff --git a/CMakeLists.txt b/CMakeLists.txt index 45dc33f8..79be8303 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -16,7 +16,7 @@ cmake_minimum_required(VERSION 3.10) set(PROJECT_NAME hpp-python) set(PROJECT_DESCRIPTION "python bindings for HPP, based on boost python") -set(PROJECT_URL "") +set(PROJECT_URL "https://github.com/humanoid-path-planner/${PROJECT_NAME}") set(CXX_DISABLE_WERROR TRUE) set(PROJECT_USE_CMAKE_EXPORT TRUE) diff --git a/flake.lock b/flake.lock new file mode 100644 index 00000000..912f7343 --- /dev/null +++ b/flake.lock @@ -0,0 +1,58 @@ +{ + "nodes": { + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "flake-parts", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1734533323, + "narHash": "sha256-ZRiWg40XZ2gZF1dt3LJYekW1XtvuHXDoToLR9dZUxWo=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e5ac8008c6a0e6f4612b32368b0e1a6f8ded25ff", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "refs/pull/362956/head", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1733096140, + "narHash": "sha256-1qRH7uAUsyQI7R1Uwl4T+XvdNv778H0Nb5njNrqvylY=", + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + }, + "original": { + "type": "tarball", + "url": "https://github.com/NixOS/nixpkgs/archive/5487e69da40cbd611ab2cadee0b4637225f7cfae.tar.gz" + } + }, + "root": { + "inputs": { + "flake-parts": "flake-parts", + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 00000000..5e3f3ab7 --- /dev/null +++ b/flake.nix @@ -0,0 +1,39 @@ +{ + description = "python bindings for HPP, based on boost python"; + + inputs = { + flake-parts.url = "github:hercules-ci/flake-parts"; + nixpkgs.url = "github:NixOS/nixpkgs/refs/pull/362956/head"; + }; + + outputs = + inputs: + inputs.flake-parts.lib.mkFlake { inherit inputs; } { + systems = inputs.nixpkgs.lib.systems.flakeExposed; + perSystem = + { pkgs, self', ... }: + { + apps.default = { + type = "app"; + program = pkgs.python3.withPackages (_: [ self'.packages.default ]); + }; + devShells.default = pkgs.mkShell { inputsFrom = [ self'.packages.default ]; }; + packages = { + default = self'.packages.hpp-python; + hpp-python = pkgs.python3Packages.hpp-python.overrideAttrs { + src = pkgs.lib.fileset.toSource { + root = ./.; + fileset = pkgs.lib.fileset.unions [ + ./CMakeLists.txt + ./doc + ./include + ./package.xml + ./src + ./tests + ]; + }; + }; + }; + }; + }; +} From 17f11f838264fc552acc1271ba7c2182d55a5b77 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 18 Dec 2024 16:32:02 +0100 Subject: [PATCH 2/3] setup github actions --- .github/dependabot.yml | 6 ++++++ .github/workflows/nix.yml | 26 +++++++++++++++++++++++++ .github/workflows/update-flake-lock.nix | 17 ++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 .github/dependabot.yml create mode 100644 .github/workflows/nix.yml create mode 100644 .github/workflows/update-flake-lock.nix diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 00000000..203f3c88 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,6 @@ +version: 2 +updates: +- package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "weekly" diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml new file mode 100644 index 00000000..810e24ea --- /dev/null +++ b/.github/workflows/nix.yml @@ -0,0 +1,26 @@ +name: "CI - Nix" + +on: + push: + branches: + - master + - devel + pull_request: + branches: + - master + - devel + +jobs: + nix: + runs-on: "${{ matrix.os }}-latest" + strategy: + matrix: + os: [ubuntu, macos] + steps: + - uses: actions/checkout@v4 + - uses: cachix/install-nix-action@v27 + - uses: cachix/cachix-action@v15 + with: + name: gepetto + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + - run: nix build -L diff --git a/.github/workflows/update-flake-lock.nix b/.github/workflows/update-flake-lock.nix new file mode 100644 index 00000000..31f4ada1 --- /dev/null +++ b/.github/workflows/update-flake-lock.nix @@ -0,0 +1,17 @@ +name: update-flake-lock + +on: + workflow_dispatch: # allows manual triggering + schedule: + - cron: '0 0 * * 0' # runs weekly on Sunday at 00:00 + +jobs: + lockfile: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v4 + - name: Install Nix + uses: DeterminateSystems/nix-installer-action@main + - name: Update flake.lock + uses: DeterminateSystems/update-flake-lock@main From 115bd0451aaa35e32a3f6fa3f2a3ca1a43c38740 Mon Sep 17 00:00:00 2001 From: Guilhem Saurel Date: Wed, 18 Dec 2024 17:12:54 +0100 Subject: [PATCH 3/3] ci: only on ubuntu --- .github/workflows/nix.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nix.yml b/.github/workflows/nix.yml index 810e24ea..3e2d5df1 100644 --- a/.github/workflows/nix.yml +++ b/.github/workflows/nix.yml @@ -15,7 +15,7 @@ jobs: runs-on: "${{ matrix.os }}-latest" strategy: matrix: - os: [ubuntu, macos] + os: [ubuntu] steps: - uses: actions/checkout@v4 - uses: cachix/install-nix-action@v27