Operations grimoire/Dwellers to DevCentral

From Nasqueron Agora
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Arcanist is available on the paas-docker role when dev extensions are enabled as container. The arc command is a wrapper to spin a container with symlinks to the configuration stored in your $HOME/.arc directory.

Arcanist

arc is a wrapper to run nasqueron/arcanist container.

To use it, create a ~/.arc folder with:

  1. a arcrc file for your arc configuration
  2. a gitconfig file for your Git configuration
  3. a ssh folder with a dedicated key for Dwellers to Phabricator instances (mkdir -p ~/.arc/ssh && ssh-keygen -t ed25519 ~/.arc/ssh/id_ed25519) if you wish to use commands like arc land

For example:

.
├── arcrc
├── gitconfig
└── ssh
    ├── id_ed25519
    ├── id_ed25519.pub
    └── known_hosts

That folder content will be passed as volumes to the container. In the example, known_hosts has been added by ssh client inside the container.

Don't use symbolic links on host (hard links are okay), they wouldn't resolve when passed as a volume to the container.

To check if all works as expected: arc shell, then, in the container, ssh -p 5022 vcs@devcentral.nasqueron.org

Troubleshoot

Usage Exception: `arc diff` is only supported under git, hg, svn

You issue a command to manipulate a Git repository:

$ arc diff
Usage Exception: `arc diff` is only supported under git, hg, svn.

You must be at the root of the repository, not in a subfolder, as Arcanist needs access to the repository too and the wrapper script uses -v $PWD:/opt/workspace to pass the current folder as workspace.

If you only use Git and not other VCS, a solution could be to copy /usr/local/bin/arc to $HOME/bin/arc and to replace $PWD by `git rev-parse --show-toplevel` to pass instead of the current directory the root directory. But beware that would create inconsistent behavior like arc lint quux/foo.py when you're already in the quux folder.