diff --git a/.github/dependabot.yml b/.github/dependabot.yml new file mode 100644 index 0000000..d202a33 --- /dev/null +++ b/.github/dependabot.yml @@ -0,0 +1,7 @@ +version: 2 +updates: + - package-ecosystem: "github-actions" + directory: "/" + schedule: + # Check for updates to GitHub Actions every week + interval: "weekly" diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml new file mode 100644 index 0000000..a37bb1d --- /dev/null +++ b/.github/workflows/check.yml @@ -0,0 +1,30 @@ +name: "Test RDE template" +on: + workflow_dispatch: # allows manual triggering + push: + paths: + - 'flake.lock' +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true +jobs: + tests: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest] + steps: + - uses: actions/checkout@v5 + - uses: wimpysworld/nothing-but-nix@main + with: + hatchet-protocol: 'carve' + - uses: cachix/install-nix-action@v31 + with: + github_access_token: ${{ secrets.GITHUB_TOKEN }} + - uses: cachix/cachix-action@v14 + with: + name: rde + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + extraPullNames: rstats-on-nix, nix-community + - run: nix build . + - run: nix flake check . diff --git a/.github/workflows/update.yml b/.github/workflows/update.yml new file mode 100644 index 0000000..8a0c9b9 --- /dev/null +++ b/.github/workflows/update.yml @@ -0,0 +1,25 @@ +name: update-flake-lock + +on: + workflow_dispatch: # allows manual triggering + schedule: + - cron: '0 3 * * *' + +jobs: + lockfile: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v5 + - name: Install Determinate Nix + uses: DeterminateSystems/determinate-nix-action@v3 + - uses: DeterminateSystems/magic-nix-cache-action@main + - name: Update n flake.lock + uses: DeterminateSystems/update-flake-lock@v27 + with: + token: ${{ secrets.GH_TOKEN_FOR_UPDATES }} + branch: update_fran + pr-title: "Update FRAN flake.lock" # Title of PR to be created + pr-labels: | # Labels to be set on the PR + dependencies + automated diff --git a/flake.nix b/flake.nix index 2b13300..687d2a1 100644 --- a/flake.nix +++ b/flake.nix @@ -2,7 +2,7 @@ description = "FRAN - The Flakey R Archiving Network"; inputs = { - nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + nixpkgs.url = "github:rstats-on-nix/nixpkgs/r-daily"; nvimcom = { url = "github:R-nvim/R.nvim"; flake = false; @@ -31,25 +31,7 @@ overlay = final: prev: let in { extraRPackages = { - musicMetadata = prev.rPackages.buildRPackage { - name = "musicMetadata"; - src = prev.fetchgit { - url = "https://github.com/hannesdatta/musicMetadata"; - branchName = "master"; - rev = "1b7ca4c1fd208475e961b77edc90ad513b936879"; - sha256 = "sha256-QK1Q6/ta2PqIrjdA6/oS1HxOMgZr/BO00OLjs3/O7EE="; - }; - }; - synthdid = prev.rPackages.buildRPackage { - name = "synthdid"; - src = prev.fetchFromGitHub { - owner = "synth-inference"; - repo = "synthdid"; - rev = "70c1ce3eac58e28c30b67435ca377bb48baa9b8a"; - sha256 = "sha256-rxQqnpKWy4d9ZykRxfILu1lyT6Z3x++gFdC3sbm++pk="; - }; - propagatedBuildInputs = [prev.rPackages.mvtnorm]; - }; + ## H httpgd = prev.rPackages.buildRPackage { name = "httpgd"; src = prev.fetchgit { @@ -66,6 +48,19 @@ ; }; }; + + ## M + musicMetadata = prev.rPackages.buildRPackage { + name = "musicMetadata"; + src = prev.fetchgit { + url = "https://github.com/hannesdatta/musicMetadata"; + branchName = "master"; + rev = "1b7ca4c1fd208475e961b77edc90ad513b936879"; + sha256 = "sha256-QK1Q6/ta2PqIrjdA6/oS1HxOMgZr/BO00OLjs3/O7EE="; + }; + }; + + ## N nvimcom = prev.rPackages.buildRPackage { name = "nvimcom"; src = inputs.nvimcom; @@ -77,6 +72,17 @@ ]; }; + ## S + synthdid = prev.rPackages.buildRPackage { + name = "synthdid"; + src = prev.fetchFromGitHub { + owner = "synth-inference"; + repo = "synthdid"; + rev = "70c1ce3eac58e28c30b67435ca377bb48baa9b8a"; + sha256 = "sha256-rxQqnpKWy4d9ZykRxfILu1lyT6Z3x++gFdC3sbm++pk="; + }; + propagatedBuildInputs = [prev.rPackages.mvtnorm]; + }; # Template for adding more packages: # somepkg = mkGitR { # pname = "somepkg"; @@ -98,7 +104,7 @@ overlays = [self.overlays.default]; }; in { - default = pkgs.rWrapper.override {packages = builtins.attrNames pkgs.extraRPackages;}; + default = pkgs.rWrapper.override {packages = builtins.attrValues pkgs.extraRPackages; }; } ); # Helpful for overlay users: expose a devShell with R including these pkgs