Better handle gha runners with persistence #1

Merged
Hoverbear merged 2 commits from hoverbear/ds-619-better-handle-gha-runners-with into main 2023-01-17 17:48:32 +00:00

View file

@ -76,7 +76,8 @@ inputs:
description: The branch of `nix-installer` to use description: The branch of `nix-installer` to use
required: false required: false
reinstall: reinstall:
description: Force a reinstall if the description: Force a reinstall if an existing installation is detected (consider backing up `/nix/store`)
required: false
runs: runs:
using: composite using: composite
@ -84,18 +85,27 @@ runs:
- name: Install Nix - name: Install Nix
shell: bash shell: bash
run: | run: |
if [ -f "/nix/receipt.json" ]; then if [ -f "/nix/receipt.json" ] && [ -f "/nix/nix-installer" ]; then
if [ -n "${{ inputs.reinstall }}" ]; then if ([ -n "${{ inputs.nix-installer-revision }}" ] || [ -n "${{ inputs.nix-installer-branch }}" ]) && [ "${{ inputs.reinstall }}" != "true" ]; then
echo "Detection of existing installation versions isn't supported when `nix-installer-revision` or `nix-installer-branch` are set, `reinstall: true` should also be set"
fi
if [ -n "${{ inputs.reinstall }}" ] && [ "${{ inputs.reinstall }}" == "true" ]; then
/nix/nix-installer uninstall --no-confirm /nix/nix-installer uninstall --no-confirm
else else
EXISTING_VERSION=$(/nix/nix-installer --version | awk '{ print $2 }')
if [ -n "${{ inputs.nix-installer-tag }}" ] && [ "${{ inputs.nix-installer-tag }}" != "$EXISTING_VERSION" ]; then
echo "`nix-installer` version mismatch, use `reinstall: true` to reinstall Nix using the new `nix-installer` version (consider backing up `/nix/store`)"
exit 1
fi
echo "Nix was already installed, using existing install" echo "Nix was already installed, using existing install"
echo "/nix/var/nix/profiles/default/bin" >> $GITHUB_PATH
exit 0 exit 0
fi fi
fi fi
if [ -n "${{ inputs.nix-installer-tag }}" ]; then if [ -n "${{ inputs.nix-installer-tag }}" ]; then
export NIX_INSTALLER_TAG=${{ inputs.tag }} export NIX_INSTALLER_TAG=${{ inputs.nix-installer-tag }}
echo "Set NIX_INSTALLER_TAG=$NIX_INSTALLER_TAG" echo "Set NIX_INSTALLER_TAG=$NIX_INSTALLER_TAG"
fi fi