{"id":19196056,"url":"https://github.com/acj/freebsd-firecracker-action","last_synced_at":"2026-03-10T03:05:16.600Z","repository":{"id":215859378,"uuid":"739935368","full_name":"acj/freebsd-firecracker-action","owner":"acj","description":"FreeBSD + Firecracker","archived":false,"fork":false,"pushed_at":"2026-01-24T12:59:41.000Z","size":34,"stargazers_count":18,"open_issues_count":0,"forks_count":4,"subscribers_count":5,"default_branch":"main","last_synced_at":"2026-01-25T00:39:31.095Z","etag":null,"topics":["ci","firecracker","freebsd","microvm","performance"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/acj.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-01-07T01:47:32.000Z","updated_at":"2026-01-24T12:53:19.000Z","dependencies_parsed_at":"2025-06-02T23:38:23.499Z","dependency_job_id":"d1f4f720-4232-49a2-b2f3-b68b1e281e05","html_url":"https://github.com/acj/freebsd-firecracker-action","commit_stats":null,"previous_names":["acj/freebsd-firecracker-action"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/acj/freebsd-firecracker-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acj%2Ffreebsd-firecracker-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acj%2Ffreebsd-firecracker-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acj%2Ffreebsd-firecracker-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acj%2Ffreebsd-firecracker-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/acj","download_url":"https://codeload.github.com/acj/freebsd-firecracker-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acj%2Ffreebsd-firecracker-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30322655,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T01:36:58.598Z","status":"online","status_checked_at":"2026-03-10T02:00:06.579Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["ci","firecracker","freebsd","microvm","performance"],"created_at":"2024-11-09T12:12:24.725Z","updated_at":"2026-03-10T03:05:16.595Z","avatar_url":"https://github.com/acj.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Run FreeBSD in a Firecracker VM\n\nThis GitHub Action launches a Firecracker VM running FreeBSD. Typical boot time is 10-15 seconds.\n\n## Getting started\n\n```yaml\n- name: Launch Firecracker VM\n  uses: acj/freebsd-firecracker-action@v0.9.0\n  with:\n    run-in-vm: |\n      echo \"Hello from inside the VM!\"\n```\n\n## How it works\n\nThis action uses a FreeBSD kernel, rootfs, and Firecracker binary from [freebsd-firecracker](https://github.com/acj/freebsd-firecracker). These include patches to make FreeBSD boot in Firecracker on the GitHub Actions runner hardware.\n\n## Current status\n\n- [X] Boots a VM in \\~12 seconds in GitHub Actions\n- [X] Supports FreeBSD 15.0.0-p1 and Firecracker 1.15.0\n- [X] Supports Intel and AMD CPUs\n\n## Supported inputs\n\n### `pre-run`: Run commands after the VM starts\n\nWith the `pre-run` input, you can run commands _outside_ of the VM after the VM is up and running. This is useful for copying files into the VM, for example.\n\n```yaml\n- name: Launch Firecracker VM\n  uses: acj/freebsd-firecracker-action@v0.9.0\n  with:\n    pre-run: |\n      echo \"Hello from outside the VM!\"\n```\n\n### `run-in-vm`: Run commands inside the VM\n\nWith the `run-in-vm` input, you can run commands _inside_ of the VM.\n\n```yaml\n- name: Launch Firecracker VM\n  uses: acj/freebsd-firecracker-action@v0.9.0\n  with:\n    run-in-vm: |\n      echo \"Hello from inside the VM!\"\n```\n\n### `post-run`: Run commands outside the VM before it shuts down\n\nWith the `post-run` input, you can run commands _outside_ of the VM before the VM shuts down. This is useful for copying files out of the VM.\n\n```yaml\n- name: Launch Firecracker VM\n  uses: acj/freebsd-firecracker-action@v0.9.0\n  with:\n    post-run: |\n      echo \"Hello from outside the VM!\"\n```\n\n### `checkout`\n\nDefault: `true`\n\nClone the repository into the VM. You can disable this behavior by setting `checkout` to `false`, which will disable the `actions/checkout` child action.\n\n### `disk-size`\n\nDefault: `2G`\n\nThe size of the VM's disk image in units recognized by [truncate(1)](https://linux.die.net/man/1/truncate):\n\n\u003e Units are K,M,G,T,P,E,Z,Y (powers of 1024) or KB,MB,... (powers of 1000). Binary prefixes can be used, too: KiB=K, MiB=M, and so on.\n\nThis can be increased if you need more space inside the VM for larger repositories, builds that produce large output, etc.\n\n### `continue-on-error`\n\nDefault: `false`\n\nWhether to continue if the `run` script returns a non-zero exit code. Setting this to `true` will guarantee that the `post-run` script is run.\n\n### `verbose`\n\nDefault: `false`\n\nPrints extra information about the runner and the VM. Useful for debugging.\n\n### Less commonly used inputs\n\nThese inputs are provided for debugging and testing. You probably don't need to use them.\n\n#### `kernel-url`\n\nOverrides the URL where the FreeBSD kernel image is downloaded from.\n\n#### `rootfs-url`\n\nOverrides the URL where the FreeBSD rootfs image is downloaded from.\n\n#### `firecracker-url`\n\nOverrides the URL where the Firecracker binary is downloaded from.\n\n#### `ssh-private-key-url`\n\nOverrides the URL where the SSH private key for the VM is downloaded from.\n\n#### `ssh-public-key-url`\n\nOverrides the URL where the SSH public key for the VM is downloaded from.\n\n## Copying files to/from the VM\n\nBy default, we use `rsync` to copy the current directory into the VM. A few items like the `.git` directory are excluded. You can customize this behavior by overriding the `pre-run` and `post-run` inputs. See the defaults in `action.yml` for a useful starting point.\n\n## Contributing\n\nPlease be kind. We're all trying to do our best.\n\nIf you're having trouble, open an issue. If you'd like to suggest an improvement, open a PR. For bigger changes, please open an issue first so that we can discuss the idea.\n\n## License\n\nApache 2.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facj%2Ffreebsd-firecracker-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facj%2Ffreebsd-firecracker-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facj%2Ffreebsd-firecracker-action/lists"}