Skip to content

auto updater

auto updater #15

Workflow file for this run

name: "Flake updater"
on:
# schedule:
# - cron: "0 0 * * *"
pull_request:
push:
jobs:
update_homes:
strategy:
matrix:
pair:
- machine: "appaquet@deskapp"
os: ubuntu-latest
- machine: "appaquet@servapp"
os: ubuntu-latest
- machine: "appaquet@mbpapp"
os: macos-latest
runs-on: ${{ matrix.pair.os }}
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main
with:
extra-conf: |
experimental-features = nix-command flakes
access-tokens = github.com=${{ secrets.GH_PAT }}
github-token: ${{ secrets.GH_PAT }}
- name: Add & update nixpkgs channel
run: |
nix-channel --add https://nixos.org/channels/nixos-24.05 nixpkgs
nix-channel --update nixpkgs
- name: Building Home Manager baseline...
run: |
set -xe
MACHINE_KEY="${{ matrix.pair.machine }}" ./x home build
mv result result-before
- name: Update flakes
run: |
set -xe
nix flake update
- name: Building Home Manager new
run: |
set -xe
MACHINE_KEY="${{ matrix.pair.machine }}" ./x home build
mv result result-after
- name: Diffing...
run: |
set -xe
nix run nixpkgs#nvd diff result-before result-after | tee diff
cat diff > "${{ matrix.pair.machine }}-home-diff"
- name: Add as artifact
uses: actions/upload-artifact@v4
with:
name: "${{ matrix.pair.machine }}-home-diff"
path: "${{ matrix.pair.machine }}-home-diff"
if-no-files-found: ignore # no files means no diff
#update_nixos:
#runs-on: ubuntu-latest
#strategy:
#matrix:
#machine: ["appaquet@deskapp"]
#steps:
#- uses: actions/checkout@v4
#- uses: DeterminateSystems/nix-installer-action@main
#with:
#extra-conf: |
#experimental-features = nix-command flakes
#access-tokens = github.com=${{ secrets.GH_PAT }}
#github-token: ${{ secrets.GH_PAT }}
#- name: Add & update nixpkgs channel
#run: |
#nix-channel --add https://nixos.org/channels/nixos-24.05 nixpkgs
#nix-channel --update nixpkgs
#nix profile install nixpkgs#nixos-rebuild
#- name: Building NixOS baseline...
#run: |
#set -xe
#MACHINE_KEY="appaquet@deskapp" ./x nixos build
#mv result result-before
#- name: Update flakes
#run: |
#set -xe
#nix flake update
#- name: Building NixOS new
#run: |
#set -xe
#MACHINE_KEY="appaquet@deskapp" ./x nixos build
#mv result result-after
#- name: Diffing...
#run: |
#set -xe
#nvd diff result-before result-after | tee diff
#cat diff > ${{ matrix.machine }}-nixos-diff
#- name: Add as artifact
#uses: actions/upload-artifact@v4
#with:
#name: "${{ matrix.machine }}-nixos-diff"
#path: "${{ matrix.machine }}-nixos-diff"
#if-no-files-found: ignore # no files means no diff
update_darwin:
runs-on: macos-latest
strategy:
matrix:
machine: ["appaquet@mbpapp"]
steps:
- uses: actions/checkout@v4
- uses: DeterminateSystems/nix-installer-action@main
with:
extra-conf: |
experimental-features = nix-command flakes
access-tokens = github.com=${{ secrets.GH_PAT }}
github-token: ${{ secrets.GH_PAT }}
- name: Add & update nixpkgs channel
run: |
nix-channel --add https://nixos.org/channels/nixos-24.05 nixpkgs
nix-channel --update nixpkgs
- name: Building baseline...
run: |
set -xe
MACHINE_KEY="${{ matrix.machine }}" ./x darwin build
mv result darwin-result-before
- name: Update flakes
run: |
set -xe
nix flake update
- name: Building new...
run: |
set -xe
MACHINE_KEY="${{ matrix.machine }}" ./x darwin build
mv result darwin-result-after
- name: Diffing...
run: |
set -xe
nix run nixpkgs#nvd diff ./darwin-result-before ./darwin-result-after | tee diff
cat diff > ${{ matrix.machine }}-darwin-diff
- name: Add as artifact
uses: actions/upload-artifact@v4
with:
name: "${{ matrix.machine }}-darwin-diff"
path: "${{ matrix.machine }}-darwin-diff"
if-no-files-found: ignore # no files means no diff
# fetches artifacts from previous jobs
# if any diff exists, it will create a PR
create_pr:
runs-on: ubuntu-latest
#needs: [update_homes, update_nixos, update_darwin]
needs: [update_homes, update_darwin]
steps:
- uses: actions/checkout@v4
- name: Fetch all artifacts
uses: actions/download-artifact@v4
with:
path: diffs
- name: Create PR
run: |
set -xe
ls -l diffs/*