summaryrefslogtreecommitdiff
path: root/.github/workflows/update-flake.yaml
diff options
context:
space:
mode:
authorseth <[email protected]>2024-04-20 02:31:40 +0000
committerGitHub <[email protected]>2024-04-19 22:31:40 -0400
commit3d07413690c551d9f034c93af85ae8da5a495e14 (patch)
tree517d2e053ebdeb9a3be0ffce6dec36cbc4ce316e /.github/workflows/update-flake.yaml
parent1b92b254bc64b356f5c59657d2f0acc767bb2964 (diff)
spring cleaning (#165)
* treewide: lightly refactor everything * once_cell -> std::sync * remove build.rs we can get our target at runtime * commands::copypasta: refactor selection * drop owo_colors * reactboard: always remove author from count * commands: better handle behavior outside of guilds * ci: garnix -> gha * nix: drop flake-parts & pre-commit-hooks * nix: fix rust flags in derivation * add gha badge to readme * ci: fail when format changes are made * ci: only run on push to main * nix: fix nil script * nix: add libiconv to darwin deps * ci: disable fail-fast * nix: fix actionlint & static checks * ci: add release gates * nix: fix nil check again * ci: give release gates unique names * ci: only build static packages in docker workflow * nix: move dev outputs to subflake * fix some typos * nix: cleanup checks & dev shell * add editorconfig
Diffstat (limited to '.github/workflows/update-flake.yaml')
-rw-r--r--.github/workflows/update-flake.yaml60
1 files changed, 48 insertions, 12 deletions
diff --git a/.github/workflows/update-flake.yaml b/.github/workflows/update-flake.yaml
index 3726908..a3a6293 100644
--- a/.github/workflows/update-flake.yaml
+++ b/.github/workflows/update-flake.yaml
@@ -1,4 +1,4 @@
-name: Update flake.lock
+name: Update lockfiles
on:
schedule:
@@ -8,29 +8,65 @@ on:
jobs:
update:
+ name: Run update
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
+ env:
+ PR_BRANCH: "update-lockfiles"
+
steps:
- - uses: actions/checkout@v4
+ - name: Checkout repository
+ uses: actions/checkout@v4
- name: Install Nix
uses: DeterminateSystems/nix-installer-action@v10
- - name: Update lockfile & make PR
- uses: DeterminateSystems/update-flake-lock@v21
- id: update
- with:
- commit-msg: "flake: update inputs"
- pr-title: "flake: update inputs"
- token: ${{ github.token }}
+ - name: Set Git user info
+ run: |
+ git config user.name 'github-actions[bot]'
+ git config user.email 'github-actions[bot]@users.noreply.github.com'
+
+ - name: Create new branch
+ id: branch
+ run: |
+ git switch -c "$PR_BRANCH"
+
+ - name: Update flake inputs
+ run: |
+ pushd nix/dev
+ nix flake update \
+ --commit-lock-file \
+ --commit-lockfile-summary "nix: update dev flake.lock"
+ popd
+
+ nix flake update \
+ --commit-lock-file \
+ --commit-lockfile-summary "nix: update flake.lock"
+
+ - name: Make PR if needed
+ env:
+ GH_TOKEN: ${{ github.token }}
+ run: |
+ if ! git diff --color=always --exit-code origin/main; then
+ git fetch origin "$PR_BRANCH" || true
+ git push --force-with-lease -u origin "$PR_BRANCH"
+
+ open_prs="$(gh pr list --base main --head "$PR_BRANCH" | wc -l)"
+ if [ "$open_prs" -eq 0 ]; then
+ gh pr create \
+ --base main \
+ --head "$PR_BRANCH" \
+ --title "chore: update lockfiles" \
+ --fill
+ fi
+ fi
- name: Enable auto-merge
shell: bash
- run: gh pr merge --auto --rebase "$PR_ID"
+ run: gh pr merge --auto --squash
env:
- GH_TOKEN: ${{ github.token }}
- PR_ID: ${{ steps.update.outputs.pull-request-number }}
+ GH_TOKEN: ${{ secrets.MERGE_TOKEN }}