name: Sync Nix module options on: push: branches: [main] paths: - nix/hm-modules.nix - nix/nixos-modules.nix - nix/generate-options.nix - flake.nix - flake.lock concurrency: group: sync-nix-options cancel-in-progress: true jobs: sync-nix-options: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 1 - uses: cachix/install-nix-action@v30 with: extra_nix_config: | experimental-features = nix-command flakes - name: Build options JSONs run: | HM_OUT=$(nix build .#hm-options-json --no-link --print-out-paths) NIXOS_OUT=$(nix build .#nixos-options-json --no-link --print-out-paths) cp "$HM_OUT/share/doc/nixos/options.json" /tmp/hm-options.json cp "$NIXOS_OUT/share/doc/nixos/options.json" /tmp/nixos-options.json - name: Checkout website uses: actions/checkout@v4 with: repository: mangowm/mangowm.github.io path: website token: ${{ secrets.WEBSITE_SYNC_TOKEN }} fetch-depth: 1 - name: Copy JSONs to website run: | cp /tmp/hm-options.json website/apps/web/src/hm-options.json cp /tmp/nixos-options.json website/apps/web/src/nixos-options.json - name: Commit and push working-directory: website run: | git config user.name "github-actions[bot]" git config user.email "github-actions[bot]@users.noreply.github.com" git add apps/web/src/hm-options.json apps/web/src/nixos-options.json git diff --staged --quiet || git commit \ -m "nix: update module options JSON" \ -m "${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}" git push