Skip to content

Commit

Permalink
Update Install Instructions for NPM and MacOS (#1842)
Browse files Browse the repository at this point in the history
* install with npm

* mac os instructions

* confirmation step
  • Loading branch information
shawntabrizi authored Aug 8, 2024
1 parent 9737242 commit 3bf98ee
Show file tree
Hide file tree
Showing 2 changed files with 77 additions and 7 deletions.
49 changes: 42 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,9 +35,44 @@ Zombienet releases are available in `github`. Each one provides an executable fo
*without* having `Node.js` installed **but** each `provider` defines its own requirements (e.g.
`k8s`, `podman`).

**Note:** Currently, it is only possible to use `podman` for Zombienet users on Linux machines.
**Note:** Currently, it is only possible to use `podman` for Zombienet users on Linux machines.
Although `podman` comes with support for macOS, it is done using an internal VM and the Zombienet provider code expects `podman` to be running natively.

### Using Binaries on MacOS

After you have downloaded `zombienet-macos-arm64` or `zombienet-macos-x64`, you will need to:

- Move the binary to your working directory.
- Rename the binary to just `zombienet` without any `macos-<version>` extension for convenience.
- Enable the binary to be executable:
```bash
chmod +x ./zombienet
```
- Remove the binary from quarantine:
```bash
xattr -d com.apple.quarantine ./zombienet
```

Then you should be able to access the binary:

```bash
./zombienet help
```

### Install from NPM

If you have `Node.js`, you can install `zombienet` locally via NPM:

```bash
npm i @zombienet/cli -g
```

Then you should be able to access the `zombienet` command:

```
zombienet help
```

## Status

At the moment Zombienet *only* works with `local` chains (e.g. rococo-local, polkadot-local, etc).
Expand All @@ -63,7 +98,7 @@ Zombienet project has it's own `k8s` cluster in GCP, to use it please ping
Zombienet supports [Podman](https://podman.io/) *rootless* as provider, you only need to have
`podman` installed in your environment to use and either set in the *network* file or with the
`--provider` flag in the cli. `Podman` for `zombienet` is currently only supported for Linux machines.
This is mostly related to paths and directories used by
This is mostly related to paths and directories used by
store configuration (chain-spec) and the data directory.

### With Native
Expand Down Expand Up @@ -200,7 +235,7 @@ message with the `node`s information like this one is shown
├─────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Prometheus Link │ http://127.0.0.1:44107/metrics │
├─────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Log Cmd │ tail -f /tmp/zombie-85391d4649f2829bb26b30d6c0328bcb_-15819-BNFoSs5qusWH/alice.log │
│ Log Cmd │ tail -f /tmp/zombie-85391d4649f2829bb26b30d6c0328bcb_-15819-BNFoSs5qusWH/alice.log │
├─────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Node Information │
├─────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┤
Expand All @@ -210,7 +245,7 @@ message with the `node`s information like this one is shown
├─────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Prometheus Link │ http://127.0.0.1:43831/metrics │
├─────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Log Cmd │ tail -f /tmp/zombie-85391d4649f2829bb26b30d6c0328bcb_-15819-BNFoSs5qusWH/bob.log │
│ Log Cmd │ tail -f /tmp/zombie-85391d4649f2829bb26b30d6c0328bcb_-15819-BNFoSs5qusWH/bob.log │
├─────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Node Information │
├─────────────────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────┤
Expand All @@ -220,7 +255,7 @@ message with the `node`s information like this one is shown
├─────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Prometheus Link │ http://127.0.0.1:38281/metrics │
├─────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Log Cmd │ tail -f /tmp/zombie-85391d4649f2829bb26b30d6c0328bcb_-15819-BNFoSs5qusWH/collator01.log │
│ Log Cmd │ tail -f /tmp/zombie-85391d4649f2829bb26b30d6c0328bcb_-15819-BNFoSs5qusWH/collator01.log │
├─────────────────────────┼────────────────────────────────────────────────────────────────────────────────────────────────────┤
│ Parachain ID │ 100 │
└─────────────────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────┘
Expand Down Expand Up @@ -346,7 +381,7 @@ For example:

> Note: If you are using macOS please clone the [polkadot-sdk repo](https://github.com/paritytech/polkadot-sdk) and run it locally. At the moment there is no `polkadot` binary for MacOs.
The command above will retrieve the binaries provided and try to download and prepare those binaries for usage.
The command above will retrieve the binaries provided and try to download and prepare those binaries for usage.
At the end of the download, the `setup` script will provide a command to run in your local environment in order to add the directory where the binaries were downloaded in your $PATH var, for example:

```bash
Expand Down Expand Up @@ -379,7 +414,7 @@ Options:
-c, --spawn-concurrency <concurrency> Number of concurrent spawning process to launch, default is 1
-p, --provider <provider> Override provider to use (choices: "podman", "kubernetes", "native")
-l, --logType <logType> Type of logging - defaults to 'table' (choices: "table", "text", "silent")
-d, --dir <path> Directory path for placing the network files instead of random temp one
-d, --dir <path> Directory path for placing the network files instead of random temp one
(e.g. -d /home/user/my-zombienet)
-f, --force Force override all prompt commands
-h, --help display help for command
Expand Down
35 changes: 35 additions & 0 deletions docs/src/install.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,41 @@

ZombieNet releases are available in [github](https://github.com/paritytech/zombienet/releases). Each release provides executables for both `linux` and `macos` created with [pkg](https://github.com/vercel/pkg) and allows running `zombienet` cli *without* having `Node.js` installed. **But** each `provider` define its own requirements (e.g. k8s, podman).

## Using Binaries on MacOS

After you have downloaded `zombienet-macos-arm64` or `zombienet-macos-x64`, you will need to:

- Move the binary to your working directory.
- Rename the binary to just `zombienet` without any `macos-<version>` extension for convenience.
- Enable the binary to be executable:
```bash
chmod +x ./zombienet
```
- Remove the binary from quarantine:
```bash
xattr -d com.apple.quarantine ./zombienet
```

Then you should be able to access the binary:

```bash
./zombienet help
```

## Using NPM

If you have `Node.js`, you can install `zombienet` locally via NPM:

```bash
npm i @zombienet/cli@latest -g
```

Then you should be able to access the `zombienet` command:

```
zombienet help
```

## Using Nix

[Nix](https://nixos.org/) is a package manager which is available for both `linux` and `macos`.
Expand Down

0 comments on commit 3bf98ee

Please sign in to comment.