Set up some CI

This commit is contained in:
Natsu Kagami 2022-05-31 12:54:14 -04:00 committed by Natsu Kagami
parent 69ce8f32ef
commit bde005fd40

View file

@ -12,6 +12,62 @@ on:
- reopened - reopened
- labeled - labeled
jobs: 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: deploy:
if: "github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'Deploy')" if: "github.event_name == 'push' || contains(github.event.pull_request.labels.*.name, 'Deploy')"
runs-on: ubuntu-latest runs-on: ubuntu-latest
@ -43,8 +99,6 @@ jobs:
access-tokens = github.com=${{ secrets.GITHUB_TOKEN }} access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
- uses: actions/cache@v2 - uses: actions/cache@v2
with: with:
path: |
/nix/store
key: nki-nix-${{ github.sha }} key: nki-nix-${{ github.sha }}
restore-keys: | restore-keys: |
nki-nix- nki-nix-