Lon #197
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 }} |