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
|
||||
|
||||
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