Skip to content

Nix CI

Nix CI #475

Workflow file for this run

jobs:
build:
name: Build and test the action
runs-on: ubuntu-latest
permissions:
contents: write
actions: write
steps:
- uses: actions/checkout@v3
# http://man7.org/linux/man-pages/man1/date.1.html
- name: Get Date
id: get-date
run: |
echo "date=$(/bin/date -u "+date-%Y-%m-%d-time-%H-%M-%S")" >> $GITHUB_OUTPUT
shell: bash
- uses: actions/cache@v3
with:
path: |
~/.npm
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json', 'package.json') }}-${{ steps.get-date.outputs.date }}
restore-keys: |
${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json', 'package.json') }}-
- name: Install packages & Build the action
run: npm ci
- name: Commit & Push changes
if: github.event_name == 'push'
run: |
git config --global user.name github-actions
git config --global user.email [email protected]
git pull --rebase --autostash
git add dist
git commit -m "action: build the action" || echo ""
git push
test:
name: Nix CI
runs-on: ${{ matrix.os }}
needs: build
steps:
- name: Checkout this repo
uses: actions/checkout@v3
- uses: nixbuild/nix-quick-install-action@v25
with:
nix_conf: |
substituters = https://cache.nixos.org/ https://nix-community.cachix.org
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
keep-outputs = true
# -------- THIS ACTION --------
- name: Restore and cache Nix store
if: ${{ matrix.do-cache }}
uses: ./.
with:
linux-gc-enabled: true
linux-max-store-size: 8000000000
macos-gc-enabled: true
macos-max-store-size: 8000000000
# save a new cache every time
key: cache-${{ matrix.os }}-${{ hashFiles('.github/workflows/ci.yaml') }}
restore-keys: |
cache-${{ matrix.os }}-${{ hashFiles('.github/workflows/ci.yaml') }}-
cache-${{ matrix.os }}-
# -------- THIS ACTION --------
# Uncomment to debug this job
# - name: Setup tmate session
# uses: mxschmitt/action-tmate@v3
- name: Show profile
run: nix profile list
- name: Lock nixpkgs
run: |
nix registry add nixpkgs github:NixOS/nixpkgs/5daaa32204e9c46b05cd709218b7ba733d07e80c
nix profile install $(nix flake archive nixpkgs --json | jq -r '.path')
- name: Show profile
run: nix profile list
- name: Run commands
run: |
nix run nixpkgs#hello
nix profile install nixpkgs#hello
nix profile install nixpkgs#cachix
nix profile install nixpkgs#nixpkgs-fmt
nix profile install nixpkgs#alejandra
nix profile install nixpkgs#nixd
nix profile install nixpkgs#ghc
nix profile install nixpkgs#haskell-language-server
nix profile install nixpkgs#purescript
nix profile install nixpkgs#nodejs_18
- name: Show profile
run: nix profile list
# Purge old caches just before saving a new one
# in the Post phase of the cache-nix-action.
- uses: deemp/purge-cache@v1
with:
debug: true
created: true
accessed: true
# 3 days
max-age: 86400
strategy:
matrix:
os:
- macos-11
- macos-12
- ubuntu-20.04
- ubuntu-22.04
do-cache:
- true
- false
name: Nix CI
"on":
push: {}
pull_request: {}
schedule:
- cron: 0 0 * * *
workflow_dispatch: {}