{"id":18465540,"url":"https://github.com/numtide/nix-vm-test","last_synced_at":"2025-04-08T08:31:53.697Z","repository":{"id":223356299,"uuid":"759727645","full_name":"numtide/nix-vm-test","owner":"numtide","description":"Re-use the NixOS VM test infrastructure to test Ubuntu, Debian, and Fedora machines.","archived":false,"fork":false,"pushed_at":"2025-03-31T14:31:23.000Z","size":309,"stargazers_count":55,"open_issues_count":9,"forks_count":6,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-31T15:58:45.714Z","etag":null,"topics":["buildbot-numtide"],"latest_commit_sha":null,"homepage":"","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/numtide.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-19T08:16:28.000Z","updated_at":"2025-03-31T14:31:25.000Z","dependencies_parsed_at":"2024-03-28T13:48:53.523Z","dependency_job_id":"7be831b8-29d8-4b89-b3d2-4858f04020a5","html_url":"https://github.com/numtide/nix-vm-test","commit_stats":null,"previous_names":["numtide/nix-vm-test"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtide%2Fnix-vm-test","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtide%2Fnix-vm-test/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtide%2Fnix-vm-test/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numtide%2Fnix-vm-test/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/numtide","download_url":"https://codeload.github.com/numtide/nix-vm-test/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247804584,"owners_count":20999017,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["buildbot-numtide"],"created_at":"2024-11-06T09:13:26.559Z","updated_at":"2025-04-08T08:31:53.191Z","avatar_url":"https://github.com/numtide.png","language":"Nix","readme":"# nix-vm-test\n\n----\n\n*Instant VMs to test your project*\n\n\u003cimg title=\"\" src=\"doc/images/DebianFedoraUbuntu.jpg\" alt=\"\" width=\"218\"\u003e\n\n[Get Started](doc/getting-started.md)          [Reference](doc/reference.md)\n\n----------\n\n# README\n\nTesting your project on different Linux distributions is essential, but time-consuming.\n\n**nix-vm-test** allows you to quickly spin up a virtual machine running any of the three major Linux distributions and run your tests using a single CLI command.\n\n## Overview\n\nThis project builds on the [NixOS VM test](https://nixos.org/manual/nixos/stable/#sec-nixos-tests) infrastructure to allow you to test your software instantly on Ubuntu, Debian, and Fedora virtual machines.\n\nIt runs on any Linux machine with Nix installed.\n\nYour tests can either be used:\n\n- interactively, for development purposes.\n- noninteractively. This is perfect for CI, and you can use it as an integration test matrix on a wide variety of Linux distributions.\n\nYou configure **nix-vm-test** using Nix package manager, either in a flake or in a `.nix` configuration. This includes defining the parameters of the virtual machine you need for the test, and writing a Python script to define your tests. Once you've built the project, you can create the virtual machine and run your tests with a single CLI command.\n\n-----\n\n## Prerequisites\n\n- A Linux machine\n\n- Nix Package Manager\n\n- Hardware KVM acceleration. The project will run without it, but it will be too slow for practical purposes.\n\n-----\n\n## How to use nix-vm-test\n\nThe [Get Started](doc/getting-started.md) guide walks you through setting up and running a simple test scenario.\n\nFor more detailed information, see the [Reference](doc/reference.md) guide.\n\n----\n\n## Status of the Project\n\n**Beta-grade**\n\nThe API will be backward compatible. The project is already used in some production setups in the wild.\n\nHowever, expect to experience some paper cuts along the way. Check out the [bug tracker](https://github.com/numtide/nix-vm-test/issues) to see the currently unfixed known bugs and their workaround.\n\n## API Peek\n\n```nix\nlet\n  test = nix-vm-test.lib.ubuntu.\"23_04\" {\n    diskSize = \"+2M\"\n    sharedDirs = {\n      numtideShare = {\n        source = \"/home/numtide/share\";\n        target = \"/mnt\";\n      };\n    };\n    testScript = ''\n      vm.wait_for_unit(\"multi-user.target\")\n      vm.succeed(\"apt-get update\")\n    '';\n    };\nin test.sandboxed\n}\n```\n\n---\n\nThis project is supported by [Numtide](https://numtide.com/).\n\u003cimg src=\"doc/images/numtide.png\" title=\"\" alt=\"Untitledpng\" width=\"274\"\u003e\n\nWe are a team of independent freelancers that love open source.  We help our\ncustomers make their project lifecycles more efficient by:\n\n- Providing and supporting useful tools such as this one\n- Building and deploying infrastructure, and offering dedicated DevOps support\n- Building their in-house Nix skills, and integrating Nix with their workflows\n- Developing additional features and tools\n- Carrying out custom research and development.\n\n[Contact us](https://numtide.com/contact) if you have a project in mind, or if\nyou need help with any of our supported tools, including this one. We'd love to\nhear from you.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumtide%2Fnix-vm-test","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnumtide%2Fnix-vm-test","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumtide%2Fnix-vm-test/lists"}