This commit is contained in:
parent
460ad8d057
commit
f86077a635
4 changed files with 88 additions and 0 deletions
33
.github/actions/attic-cache-push/action.yml
vendored
Normal file
33
.github/actions/attic-cache-push/action.yml
vendored
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
name: "Attic Watch and Push"
|
||||||
|
description: "Composite action that logs in, sets the cache repository, starts attic watch-store in the background, and pushes results after the job completes."
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
cache_name:
|
||||||
|
description: "Cache name for attic login"
|
||||||
|
required: true
|
||||||
|
server:
|
||||||
|
description: "Server URL for attic login"
|
||||||
|
required: true
|
||||||
|
attic_auth_token:
|
||||||
|
description: "Authentication token for attic login"
|
||||||
|
required: true
|
||||||
|
cache_repository:
|
||||||
|
description: "Cache repository to use with attic"
|
||||||
|
required: true
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Attic Login
|
||||||
|
shell: "nix shell nixpkgs#attic-client --command {0}"
|
||||||
|
run: |
|
||||||
|
attic login "${{ inputs.cache_name }}" "${{ inputs.server }}" "${{ inputs.attic_auth_token }}"
|
||||||
|
- name: Attic Use Repository
|
||||||
|
shell: "nix shell nixpkgs#attic-client --command {0}"
|
||||||
|
run: |
|
||||||
|
attic use "${{ inputs.cache_repository }}"
|
||||||
|
- name: Start Attic Watch-Store in Background
|
||||||
|
shell: "nix shell nixpkgs#attic-client --command {0}"
|
||||||
|
run: |
|
||||||
|
# Start attic watch-store in the background
|
||||||
|
attic watch-store &
|
15
.github/actions/attic-cache/action.yml
vendored
Normal file
15
.github/actions/attic-cache/action.yml
vendored
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
name: "Attic Watch and Push"
|
||||||
|
description: "Composite action pushes results after the job completes. Needs prior attic-cache action to have executed successfully."
|
||||||
|
|
||||||
|
inputs:
|
||||||
|
cache_repository:
|
||||||
|
description: "Cache repository to use with attic"
|
||||||
|
required: true
|
||||||
|
|
||||||
|
runs:
|
||||||
|
using: "composite"
|
||||||
|
steps:
|
||||||
|
- name: Attic Push Results
|
||||||
|
shell: "nix shell nixpkgs#attic-client --command {0}"
|
||||||
|
run: |
|
||||||
|
attic push "${{ inputs.cache_repository }}" "./result" # TODO: Make this smarter
|
39
.github/workflows/ci.yml
vendored
Normal file
39
.github/workflows/ci.yml
vendored
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
name: CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: nix
|
||||||
|
steps:
|
||||||
|
- name: Initialize CI
|
||||||
|
uses: https://git.qo.is/qo.is/actions-nix-init@main
|
||||||
|
with:
|
||||||
|
token: ${{ secrets.CI_TOKEN }}
|
||||||
|
lfs: false
|
||||||
|
|
||||||
|
- name: Add submodules to nix store to circumvent another nix bug
|
||||||
|
run: |
|
||||||
|
git clone https://git.qo.is/fabianhauser/nix-config-private.git /tmp/private
|
||||||
|
cd /tmp/private
|
||||||
|
nix flake prefetch
|
||||||
|
|
||||||
|
- name: Setup Attic Watch and Push
|
||||||
|
uses: ./.github/actions/attic-cache
|
||||||
|
with:
|
||||||
|
cache_name: fabianhauser
|
||||||
|
server: https://attic.qo.is/
|
||||||
|
attic_auth_token: ${{ secrets.ATTIC_AUTH_TOKEN }}
|
||||||
|
cache_repository: fabianhauser:dotfiles
|
||||||
|
|
||||||
|
- name: Build
|
||||||
|
run: nix build --max-jobs 12 --cores 12
|
||||||
|
|
||||||
|
- name: Run Checks
|
||||||
|
run: nix flake check
|
||||||
|
|
||||||
|
- name: Setup Cache Push
|
||||||
|
uses: ./.github/actions/attic-cache-push
|
||||||
|
with:
|
||||||
|
cache_repository: fabianhauser:dotfiles
|
|
@ -76,6 +76,7 @@
|
||||||
inherit (pkgs)
|
inherit (pkgs)
|
||||||
nixos-rebuild
|
nixos-rebuild
|
||||||
nixos-facter
|
nixos-facter
|
||||||
|
attic-client
|
||||||
sops
|
sops
|
||||||
ssh-to-age
|
ssh-to-age
|
||||||
nixd
|
nixd
|
||||||
|
|
Loading…
Add table
Reference in a new issue