feat: Add nix-setup composite action
Reusable action for Nix CI with caching: - DeterminateSystems/nix-installer-action for Nix installation - actions/cache@v4 for Nix store caching - Cache key based on flake.lock for per-repo isolation
This commit is contained in:
40
README.md
40
README.md
@@ -1,3 +1,41 @@
|
|||||||
# gitea-actions
|
# gitea-actions
|
||||||
|
|
||||||
Reusable Gitea Actions for CI workflows
|
Reusable Gitea Actions for CI workflows.
|
||||||
|
|
||||||
|
## Actions
|
||||||
|
|
||||||
|
### nix-setup
|
||||||
|
|
||||||
|
Installs Nix and sets up Nix store caching for Gitea Actions workflows.
|
||||||
|
|
||||||
|
**Features:**
|
||||||
|
- Uses DeterminateSystems/nix-installer-action for reliable Nix installation
|
||||||
|
- Caches `/nix/store`, `/nix/var/nix`, and `~/.cache/nix`
|
||||||
|
- Cache key based on `flake.lock` hash for automatic invalidation
|
||||||
|
- Each repo gets isolated cache (different flake.lock = different cache)
|
||||||
|
|
||||||
|
**Usage:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: johno/gitea-actions/nix-setup@main
|
||||||
|
- run: nix flake check
|
||||||
|
```
|
||||||
|
|
||||||
|
**With custom cache prefix:**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- uses: johno/gitea-actions/nix-setup@main
|
||||||
|
with:
|
||||||
|
cache-name: 'my-project-'
|
||||||
|
```
|
||||||
|
|
||||||
|
**Inputs:**
|
||||||
|
|
||||||
|
| Input | Description | Required | Default |
|
||||||
|
|-------|-------------|----------|---------|
|
||||||
|
| `cache-name` | Optional cache name prefix for disambiguation | No | `''` |
|
||||||
|
|||||||
25
nix-setup/action.yml
Normal file
25
nix-setup/action.yml
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
name: 'Nix Setup with Cache'
|
||||||
|
description: 'Install Nix and set up store caching'
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
cache-name:
|
||||||
|
description: 'Optional cache name prefix for disambiguation'
|
||||||
|
required: false
|
||||||
|
default: ''
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: 'composite'
|
||||||
|
steps:
|
||||||
|
- name: Install Nix
|
||||||
|
uses: DeterminateSystems/nix-installer-action@main
|
||||||
|
|
||||||
|
- name: Cache Nix store
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
/nix/store
|
||||||
|
/nix/var/nix
|
||||||
|
~/.cache/nix
|
||||||
|
key: nix-${{ inputs.cache-name }}${{ runner.os }}-${{ hashFiles('flake.lock') }}
|
||||||
|
restore-keys: |
|
||||||
|
nix-${{ inputs.cache-name }}${{ runner.os }}-
|
||||||
Reference in New Issue
Block a user