Deploying

For deployment, you don’t need to install some untrusted vendor’s toolchain. Instead, Skyflake leverages the standard method for transferring your flake repository: git push

You can have multiple deployment flakes that they push to via SSH.

To select which nixosConfigurations of a flake shall be built and deployed on a git push we use git branches.

Assuming that you have a Skyflake account alice on Skyflake host deploy.example.net, push the current git commit (HEAD) to remote flake my-infra to (re-)deploy hosts www, ftp, and bittorrent:

git push alice@deploy.example.net:my-infra \
    HEAD:www HEAD:ftp HEAD:bittorrent

The remote machine will now receive your git data, build the nixosConfigurations by specified revision. You are not disconnected from SSH yet; you’ll get the build output feedback, able to interrupt before it finishes. Once the builds have finished successfully, the machines are scheduled for reboot.

Your local git state should now include the updated remote branches.