Skip to content

Lon

Lon #197

Workflow file for this run

name: Lon
on:
schedule:
- cron: "0 10 * * 1-5"
workflow_dispatch:
jobs:
update:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
issues: write
steps:
- uses: actions/checkout@v6
- name: Install Lix
uses: samueldr/lix-gha-installer-action@v2025-02-26.prerelease
- name: Install Cachix
uses: cachix/cachix-action@v17
with:
name: drakon64
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"
- name: Build Nix shell
run: nix-shell -A lon --run "exit"
- name: Evaluate with current lockfile
run: |
echo "CURRENT_REPOSITORY_HASH=$(nix eval --file default.nix --raw repository.docker)" >> "$GITHUB_ENV"
echo "CURRENT_DASHBOARD_HASH=$(nix eval --file default.nix --raw dashboard.docker)" >> "$GITHUB_ENV"
echo "CURRENT_CLIENT_HASH=$(nix eval --file default.nix --raw client)" >> "$GITHUB_ENV"
echo "CURRENT_SHELL_HASH=$(nix-build shell.nix)" >> "$GITHUB_ENV"
- name: Update Lon lockfile
run: nix-shell -A lon --run "lon update"
- name: Build and evaluate with updated lockfile
run: |
echo "NEW_REPOSITORY_HASH=$(nix-build -A repository.docker)" >> "$GITHUB_ENV"
echo "NEW_DASHBOARD_HASH=$(nix-build -A dashboard.docker)" >> "$GITHUB_ENV"
echo "NEW_CLIENT_HASH=$(nix-build -A client)" >> "$GITHUB_ENV"
echo "NEW_SHELL_HASH=$(nix-build shell.nix)" >> "$GITHUB_ENV"
- name: Open pull request
run: |
git checkout lon.lock
nix-shell -A lon --run "lon bot github"
env:
LON_TOKEN: ${{ secrets.GITHUB_TOKEN }}
LON_LABELS: "dependencies,Nix"
id: lon
if: ${{ env.NEW_REPOSITORY_HASH != env.CURRENT_REPOSITORY_HASH || env.NEW_DASHBOARD_HASH != env.CURRENT_DASHBOARD_HASH || env.NEW_CLIENT_HASH != env.CURRENT_CLIENT_HASH || env.NEW_SHELL_HASH != env.CURRENT_SHELL_HASH }}
- run: |
BODY=$(echo -e "\`\`\`\n$(nix store diff-closures $CURRENT_SHELL_HASH $NEW_SHELL_HASH)\n\`\`\`")
gh pr edit lon/nixpkgs -b "$BODY"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
if: ${{ env.NEW_SHELL_HASH != env.CURRENT_SHELL_HASH }}