From 5e13527416e183c7ea6d1baa3528b5c30108372e Mon Sep 17 00:00:00 2001 From: Albert O'Shea Date: Tue, 18 Nov 2025 17:46:49 +1100 Subject: feat: nix support for the nix folks (#3924) Co-authored-by: opencode Co-authored-by: opencode-agent[bot] --- .github/workflows/update-nix-hashes.yml | 79 +++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 .github/workflows/update-nix-hashes.yml (limited to '.github') diff --git a/.github/workflows/update-nix-hashes.yml b/.github/workflows/update-nix-hashes.yml new file mode 100644 index 000000000..fe388697e --- /dev/null +++ b/.github/workflows/update-nix-hashes.yml @@ -0,0 +1,79 @@ +name: Update Nix Hashes + +permissions: + contents: write + +on: + workflow_dispatch: + push: + paths: + - 'bun.lock' + - 'package.json' + - 'packages/*/package.json' + pull_request: + paths: + - 'bun.lock' + - 'package.json' + - 'packages/*/package.json' + +jobs: + update: + runs-on: ubuntu-latest + env: + SYSTEM: x86_64-linux + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + token: ${{ secrets.GITHUB_TOKEN }} + fetch-depth: 0 + + - name: Setup Nix + uses: DeterminateSystems/nix-installer-action@v20 + + - name: Configure git + run: | + git config --global user.email "opencode@sst.dev" + git config --global user.name "opencode" + + - name: Update node_modules hash + run: | + set -euo pipefail + nix/scripts/update-hashes.sh + + - name: Commit hash changes + env: + TARGET_BRANCH: ${{ github.head_ref || github.ref_name }} + run: | + set -euo pipefail + + summarize() { + local status="$1" + { + echo "### Nix Hash Update" + echo "" + echo "- ref: ${GITHUB_REF_NAME}" + echo "- status: ${status}" + } >> "$GITHUB_STEP_SUMMARY" + if [ -n "${GITHUB_SERVER_URL:-}" ] && [ -n "${GITHUB_REPOSITORY:-}" ] && [ -n "${GITHUB_RUN_ID:-}" ]; then + echo "- run: ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" >> "$GITHUB_STEP_SUMMARY" + fi + echo "" >> "$GITHUB_STEP_SUMMARY" + } + + FILES=(flake.nix nix/node-modules.nix nix/hashes.json) + STATUS="$(git status --short -- "${FILES[@]}" || true)" + if [ -z "$STATUS" ]; then + summarize "no changes" + echo "No changes to tracked Nix files. Hashes are already up to date." + exit 0 + fi + + git add "${FILES[@]}" + git commit -m "Update Nix hashes" + + BRANCH="${TARGET_BRANCH:-${GITHUB_REF_NAME}}" + git push origin HEAD:"$BRANCH" + + summarize "committed $(git rev-parse --short HEAD)" -- cgit v1.2.3