Skip to content
This repository has been archived by the owner on Jan 4, 2021. It is now read-only.

Commit

Permalink
shabka CLI (#294)
Browse files Browse the repository at this point in the history
* moved scripts

* working version of shabka CLI for switching config on NixOS hosts

* allow using shabka cli as a library

* add darwin hosts support and all other commands passed to {darwin,nixos}-rebuild

* adapt CI

* .release -> release

* bug fixes

* *-rebuild: fix rebuild for darwin

* refactor: functions now return (echo) a value instead of setting it globaly

* push-to-cachix command

* add debug output

* removed unused files in lib/bash

* __VERBOSE: add default value

* __VERBOSE: set default value at 3 for now

* fix darwin nix_path

* Use DOTSHABKA_REPOSITORY

* Update .circleci/config.yml

Co-Authored-By: Wael Nasreddine <wael.nasreddine@gmail.com>

* removed unused function

* Revert "Update .circleci/config.yml"

This reverts commit 24e2805.

* CI: fix CI on Darwin

* add help message

* set -e in subshells

* Error checking when exiting subshell functions

* uname => distrib

* follow bin/shabka error handling in the CI

* fix Makefile

* fix help message

* remove --option builders ''

Co-authored-by: Wael Nasreddine <wael.nasreddine@gmail.com>
  • Loading branch information
rissson and kalbasit committed Jan 13, 2020
1 parent c0b8f33 commit 1d8296e
Show file tree
Hide file tree
Showing 12 changed files with 480 additions and 305 deletions.
91 changes: 50 additions & 41 deletions .circleci/config.yml
Expand Up @@ -18,13 +18,26 @@ var_2: &install-dependencies
# install git and bash
nix-env -f '<nixpkgs>' -i -A gitAndTools.git -A bash
var_3: &install-cachix
run:
name: Install Cachix
shell: /usr/bin/env bash -euxo pipefail
command: |
if [[ -r "${HOME}/.nix-profile/etc/profile.d/nix.sh" ]]; then
source "${HOME}/.nix-profile/etc/profile.d/nix.sh"
fi
# install cachix from nixpkgs at stable
readonly shabka_path="$( pwd )"
release="$( tr -d "\n" < "${shabka_path}/.release" )"
export NIX_PATH="$( "${shabka_path}/lib/bash/nix-path.sh" "${release}" )"
release="$( tr -d "\n" < "${shabka_path}/release" )"
source "${shabka_path}/bin/shabka"
nix_path="$( getNixPath "${release}" '' )" || exit "${?}"
export NIX_PATH="${nix_path}"
nix-env -f '<nixpkgs>' -iA cachix
var_3: &enable-cachix
var_4: &enable-cachix
run:
name: Enable cachix
command: |
Expand All @@ -34,7 +47,19 @@ var_3: &enable-cachix
cachix use "${CACHIX_CACHE}"
var_4: &build-host
var_5: &download-dotshabka
run:
name: Download dotshabka from kalbasit
working_directory: ~/
command: |
if ! git clone "${DOTSHABKA_REPOSITORY}" -b "${CIRCLE_BRANCH}" "${HOME}/.shabka"; then
git clone "̈${DOTSHABKA_REPOSITORY}" "${HOME}/.shabka"
>&2 echo "Cloned dotshabka from the master branch"
else
>&2 echo "Cloned dotshabka from the ${CIRCLE_BRANCH} branch"
fi
var_6: &build-host
run:
name: Building the host
working_directory: ~/shabka
Expand All @@ -43,11 +68,11 @@ var_4: &build-host
source "${HOME}/.nix-profile/etc/profile.d/nix.sh"
fi
export DOTSHABKA_PATH="${HOME}/dotshabka"
export DOTSHABKA_PATH="${HOME}/.shabka"
./scripts/build-host.sh "${CIRCLE_JOB}"
./bin/shabka -h "${CIRCLE_JOB}" build
var_5: &push-to-cachix
var_7: &push-to-cachix
run:
name: Push the build to cachix
working_directory: ~/shabka
Expand All @@ -66,33 +91,9 @@ var_5: &push-to-cachix
exit 0
fi
export DOTSHABKA_PATH="${HOME}/dotshabka"
export DOTSHABKA_PATH="${HOME}/.shabka"
./scripts/push-to-cachix.sh "${CACHIX_CACHE}" "${CIRCLE_JOB}"
var_6: &download-kalbasit-dotshabka
run:
name: Download dotshabka from kalbasit
working_directory: ~/
command: |
if ! git clone https://github.com/kalbasit/dotshabka.git -b "${CIRCLE_BRANCH}"; then
git clone https://github.com/kalbasit/dotshabka.git
>&2 echo "Cloned dotshabka from the master branch"
else
>&2 echo "Cloned dotshabka from the ${CIRCLE_BRANCH} branch"
fi
var_7: &download-risson-dotshabka
run:
name: Download dotshabka from risson
working_directory: ~/
command: |
if ! git clone https://github.com/rissson/dotshabka.git -b "${CIRCLE_BRANCH}"; then
git clone https://github.com/rissson/dotshabka.git
>&2 echo "Cloned dotshabka from the master branch"
else
>&2 echo "Cloned dotshabka from the ${CIRCLE_BRANCH} branch"
fi
./bin/shabka push-to-cachix "${CACHIX_CACHE}" "${CIRCLE_JOB}"
version: 2
jobs:
Expand All @@ -109,8 +110,9 @@ jobs:
- checkout
- *install-nix
- *install-dependencies
- *install-cachix
- *enable-cachix
- *download-kalbasit-dotshabka
- *download-dotshabka
- *build-host
- *push-to-cachix

Expand All @@ -126,8 +128,9 @@ jobs:
steps:
- checkout
- *install-dependencies
- *install-cachix
- *enable-cachix
- *download-kalbasit-dotshabka
- *download-dotshabka
- *build-host
- *push-to-cachix

Expand All @@ -143,8 +146,9 @@ jobs:
steps:
- checkout
- *install-dependencies
- *install-cachix
- *enable-cachix
- *download-kalbasit-dotshabka
- *download-dotshabka
- *build-host
- *push-to-cachix

Expand All @@ -160,8 +164,9 @@ jobs:
steps:
- checkout
- *install-dependencies
- *install-cachix
- *enable-cachix
- *download-kalbasit-dotshabka
- *download-dotshabka
- *build-host
- *push-to-cachix

Expand All @@ -178,8 +183,9 @@ jobs:
- checkout
- *install-nix
- *install-dependencies
- *install-cachix
- *enable-cachix
- *download-kalbasit-dotshabka
- *download-dotshabka
- *build-host
- *push-to-cachix

Expand All @@ -195,8 +201,9 @@ jobs:
steps:
- checkout
- *install-dependencies
- *install-cachix
- *enable-cachix
- *download-kalbasit-dotshabka
- *download-dotshabka
- *build-host
- *push-to-cachix

Expand All @@ -212,8 +219,9 @@ jobs:
steps:
- checkout
- *install-dependencies
- *install-cachix
- *enable-cachix
- *download-risson-dotshabka
- *download-dotshabka
- *build-host
- *push-to-cachix

Expand All @@ -229,8 +237,9 @@ jobs:
steps:
- checkout
- *install-dependencies
- *install-cachix
- *enable-cachix
- *download-risson-dotshabka
- *download-dotshabka
- *build-host
- *push-to-cachix

Expand Down
8 changes: 4 additions & 4 deletions Makefile
Expand Up @@ -3,19 +3,19 @@ all: build

.PHONY: build
build:
./scripts/nixos-rebuild.sh build --show-trace
./bin/shabka build --show-trace

.PHONY: test
test:
sudo --preserve-env=DOTSHABKA_PATH ./scripts/nixos-rebuild.sh test --show-trace
sudo --preserve-env=DOTSHABKA_PATH ./bin/shabka test --show-trace

.PHONY: switch
switch:
sudo --preserve-env=DOTSHABKA_PATH ./scripts/nixos-rebuild.sh switch --show-trace
sudo --preserve-env=DOTSHABKA_PATH ./bin/shabka switch --show-trace

.PHONY: boot
boot:
sudo --preserve-env=DOTSHABKA_PATH ./scripts/nixos-rebuild.sh boot --show-trace
sudo --preserve-env=DOTSHABKA_PATH ./bin/shabka boot --show-trace

.PHONY: brew
brew:
Expand Down

0 comments on commit 1d8296e

Please sign in to comment.