/jenkins-config

NixOS configuration for Nammayatri Jenkins CI machines

Primary LanguageNixGNU Affero General Public License v3.0AGPL-3.0

CI configurations

Nammayatri uses Jenkins for CI. This repository contains the NixOS configuration for the master node and the macOS slave node. It uses jenkins-nix-ci under the hood.

Deploying

First enter the nix shell (via direnv or nix develop) and then run:

To deploy the master node,

deploy --remote-build -s .#nixos

NetworkManager issues

NOTE: If deploying fails with rollback on NetworkManager issues, see serokell/deploy-rs#91 (comment).

  • Deploy with --auto-rollback false --magic-rollback false
  • You may have to reboot the machine after deploying with rollback disabled, and deploy again.

To deploy the macOS slave node,

deploy --remote-build -s .#macos

Local build

For linux,

nix build .#nixosConfigurations.jenkins-nix-ci.config.system.build.toplevel

FAQ

Jenkins is not accessible

You will see something like This site can't be reached.

  1. Connect to Tailscale and see if it is accessible in VPN
  2. SSH to the machine
  3. Run sudo systemctl restart tailscaled.service