update-flake-lock/action.yml
Cole Helbling 2dc5d432c4 Don't use an external script for multiple inputs
All consumers would then have to bring this script into their repo,
since GitHub doesn't have something like Nix's string context.
2021-12-03 10:24:07 -08:00

60 lines
2 KiB
YAML

name: 'Update flake.lock'
description: 'Update your flake.lock and send a PR'
inputs:
inputs:
description: 'A space-separated list of inputs to update. Leave empty to update all inputs.'
required: false
default: ''
runs:
using: "composite"
steps:
- run: |
if [[ -n '${{ inputs.inputs }}' ]]; then
inputs=()
for input in ${{ inputs.inputs }}; do
inputs+=("--update-input" "$input")
done
nix flake lock "${inputs[@]}" --commit-lock-file
else
nix flake update --commit-lock-file
fi
shell: bash
env:
GIT_AUTHOR_NAME: github-actions[bot]
GIT_AUTHOR_EMAIL: <github-actions[bot]@users.noreply.github.com>
GIT_COMMITTER_NAME: github-actions[bot]
GIT_COMMITTER_EMAIL: <github-actions[bot]@users.noreply.github.com>
- run: |
content="$(git log --format=%b -n 1)"
content="${content//'%'/'%25'}"
content="${content//$'\n'/'%0A'}"
content="${content//$'\r'/'%0D'}"
echo "::set-output name=msg::$content"
shell: bash
id: commit_message
- name: Create PR
uses: peter-evans/create-pull-request@v3
with:
branch: update_flake_lock_action
delete-branch: true
title: "flake.lock: Update"
body: |
Automated changes by the [update-flake-lock](https://github.com/DeterminateSystems/update-flake-lock) GitHub Action.
```
${{ steps.commit_message.outputs.msg }}
```
### Running GitHub Actions on this PR
GitHub Actions will not run workflows on pull requests which are opened by a GitHub Action.
To run GitHub Actions workflows on this PR, run:
```sh
git branch -D update_flake_lock_action
git fetch origin
git checkout update_flake_lock_action
git commit --amend --no-edit
git push origin update_flake_lock_action --force
```