diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index a4f1729..3653e17 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -12,6 +12,62 @@ on: - reopened - labeled jobs: + test: + runs-on: ubuntu-latest + name: Check + steps: + - uses: actions/checkout@v2.3.4 + - uses: cachix/install-nix-action@v17 + with: + extra_nix_config: | + # save space on disk and in cache + auto-optimise-store = true + # keep all store paths necessary to build the outputs + keep-outputs = true + keep-derivations = true + # Enable flakes + experimental-features = nix-command flakes + - uses: actions/cache@v2 + with: + key: nki-nix-${{ github.sha }} + restore-keys: | + nki-nix- + path: | + nix_store_dir + nix_store_db.sqlite + - name: restore cached nix store + run: | + if [ -e nix_store_db.sqlite ]; then + sudo systemctl stop nix-daemon + # put cached store paths back in their proper locations + sudo rm -rf /nix/store /nix/var/nix/db/db.sqlite + sudo mv nix_store_dir /nix/store + sudo cp nix_store_db.sqlite /nix/var/nix/db/db.sqlite + # fix store permissions + sudo chmod 1775 /nix/store + sudo chown root:nixbld /nix/store + sudo chmod 0644 /nix/var/nix/db/db.sqlite + sudo chown -R root:root /nix/store /nix/var/nix/db/db.sqlite + sudo systemctl start nix-daemon + fi + - name: Run format check + run: | + nix fmt + if [ -z "$(git status --untracked-files=no --porcelain)" ]; then + echo "Formatted, clean" + else + echo "The following files are unformatted:" + git status + false + fi + - name: prepare nix store for caching + run: | + # delete old stuff not relevant to this build + nix store gc + sudo systemctl stop nix-daemon + # move store to a place where the cache action can read it + sudo mv /nix/store nix_store_dir + sudo mv /nix/var/nix/db/db.sqlite nix_store_db.sqlite deploy: if: "github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'Deploy')" runs-on: ubuntu-latest @@ -43,8 +99,6 @@ jobs: access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} - uses: actions/cache@v2 with: - path: | - /nix/store key: nki-nix-${{ github.sha }} restore-keys: | nki-nix-