version: 2 jobs: build-nix: machine: enabled: true steps: - run: name: Prepare nix directories command: | sudo mkdir -p /nix sudo chown circleci /nix sudo mkdir -p /etc/nix # Enable sandbox echo "sandbox = true" | sudo tee -a /etc/nix/nix.conf # Keep derivations and their outputs for better caching echo "keep-outputs = true" | sudo tee -a /etc/nix/nix.conf echo "keep-derivations = true" | sudo tee -a /etc/nix/nix.conf # Set a new TMP because /run/user is (1) pretty small and (2) # mounted with noexec new_tmp=$HOME/tmp mkdir -p $new_tmp echo "export TMPDIR=$new_tmp" >> $BASH_ENV - run: name: Install Nix command: | until bash <(curl https://nixos.org/nix/install) do echo "Nix install failed, retrying" sudo rm -rf /nix sudo mkdir -p /nix sudo chown circleci /nix done echo '. /home/circleci/.nix-profile/etc/profile.d/nix.sh' >> $BASH_ENV - checkout - run: name: Nix build command: ./script/test - run: name: "Update Node.js and npm (master only)" command: | if [ "$CIRCLE_BRANCH" == "master" ]; then nix-env -f ./nix -iA nodejs-10_x fi - run: name: "Install netlify-cli (master only)" command: | if [ "$CIRCLE_BRANCH" == "master" ]; then npm install netlify-cli fi - run: name: "Netlify deploy (master only)" command: | if [ "$CIRCLE_BRANCH" == "master" ]; then echo "Deploying to production" ./node_modules/netlify-cli/bin/run deploy \ --dir=./site \ --message="$CIRCLE_SHA1" --prod else echo "Not deploying" fi workflows: version: 2 build: jobs: - build-nix: context: niv-netlify