{"repo":"nialov/actions.nix","free":true,"listed":false,"github":"https://github.com/nialov/actions.nix","clone":"git clone https://github.com/nialov/actions.nix.git","description":"generate GitHub/Gitea actions using nix","language":"Nix","stars":55,"topics":["flake-parts","gitea-actions","github-actions","nix"],"license":"MIT","category":"workflow-automation","readme_excerpt":"actions.nix - generate GitHub/Gitea actions using nix Features - Contains a nix module in nix/flake-modules/actions-nix/ that converts nix configuration into GitHub/Gitea action syntax yaml - Module contains definition of a pre-commit hook, using git-hooks.nix , that converts actions-nix configuration into respective workflow files in the path defined in configuration Why - Write your action logic in nix and transform that into yaml actions - Use the full capabilities of nix to generate logic rather than writing it in plain yaml - nix is a programming language rather than just a configuration language like yaml - Consequently, it can be used to generate configuration more succinctly using functions - Examples and reusable definitions will be added to this project - Reuse action definitions you have written in nix across repositories by using flakes rather than copy-pasting yaml across repositories Example See nix/ci/default.nix for action configuration in nix . This is turned by the pre-commit hook, or by running nix run .#render-workflows , into the workflow file in .github/workflows/main.yaml . Installation With flake-parts Add the module exposed by this repository and configure your workflows. Without flake-parts You can also use the plain library API: write an actions-nix config module and evaluate it yourself. config.build.check self verifies that the workflow files already committed in the flake source match what actions-nix would generate. Usage Example ci.nix : Then r","default_branch":null,"files":null,"tree":[],"storefront":"/r/nialov","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/nialov/actions.nix/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}