name: "Flake lock updater" description: "Updates the flake lock file" inputs: flake_path: description: "Relative path to the flake.nix file" default: './' required: false token: description: "Authentication token" default: "" required: true runs: using: "composite" steps: - name: Update flake.lock id: update shell: bash run: | nix flake update --flake ${{ inputs.flake_path }} 2> >(tee /dev/stderr) | awk ' /^• Updated input/ {in_update = 1; print; next} in_update && !/^warning:/ {print} /^$/ {in_update = 0} ' > update.log echo "UPDATE_LOG<> $GITHUB_ENV cat update.log >> $GITHUB_ENV echo "EOF" >> $GITHUB_ENV rm update.log - name: Create PR shell: bash run: | BRANCH="update-flake-lock" git fetch origin git checkout main if git show-ref --verify --quiet refs/heads/$BRANCH; then git checkout $BRANCH git reset --hard origin/main else git checkout -b $BRANCH origin/main fi git checkout -B update-flake-lock git add ${{ inputs.flake_path }}/flake.lock git config user.name "${{ env.GITHUB_ACTOR }}" git config user.email "tyler@mayoff.ca" git commit -m "updated lockfile" git push origin update-flake-lock nix run nixpkgs#forgejo-cli -- auth add-key ${{ env.GITHUB_ACTOR }} ${{ inputs.token }} nix run nixpkgs#forgejo-cli -- pr create "automated: Update flake.lock" --body "body tests" --head update-flake-lock || echo "PR may already exist"