summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornatsukium <tomoya.otabi@gmail.com>2024-06-06 22:37:48 +0900
committergithub-actions[bot] <github-actions[bot]@users.noreply.github.com>2024-06-26 05:42:52 +0000
commit1ca3568e3386da1d4fd4e3731e8596f6eb39d5ec (patch)
tree9935805ab424d54d465074d5cea5a5ea0d82a057
parentMerge pull request #322230 from NixOS/backport-319359-to-release-24.05 (diff)
downloadnixpkgs-origin/backport-317764-to-release-24.05.tar.gz
renovate: init at 37.393.0origin/backport-317764-to-release-24.05
(cherry picked from commit 5e97bc3b0a78cd37d4bf094933dee426a8e6cf62)
-rw-r--r--pkgs/by-name/re/renovate/package.nix105
1 files changed, 105 insertions, 0 deletions
diff --git a/pkgs/by-name/re/renovate/package.nix b/pkgs/by-name/re/renovate/package.nix
new file mode 100644
index 000000000000..bf633d9143b5
--- /dev/null
+++ b/pkgs/by-name/re/renovate/package.nix
@@ -0,0 +1,105 @@
+{
+ lib,
+ stdenv,
+ fetchFromGitHub,
+ makeWrapper,
+ nodejs,
+ overrideSDK,
+ pnpm_9,
+ python3,
+ renovate,
+ testers,
+ xcbuild,
+}:
+
+let
+ # fix build error, `no member named 'aligned_alloc'` on x86_64-darwin
+ # https://github.com/NixOS/nixpkgs/issues/272156#issuecomment-1839904283
+ stdenv' = if stdenv.hostPlatform.isDarwin then overrideSDK stdenv "11.0" else stdenv;
+in
+stdenv'.mkDerivation (finalAttrs: {
+ pname = "renovate";
+ version = "37.393.0";
+
+ src = fetchFromGitHub {
+ owner = "renovatebot";
+ repo = "renovate";
+ rev = "refs/tags/${finalAttrs.version}";
+ hash = "sha256-YgxcGNMgmwrausdR7kvG1NiyQPn0FcCq/isf9qUDCFY=";
+ };
+
+ postPatch = ''
+ substituteInPlace package.json \
+ --replace-fail "0.0.0-semantic-release" "${finalAttrs.version}"
+ '';
+
+ nativeBuildInputs = [
+ makeWrapper
+ nodejs
+ pnpm_9.configHook
+ python3
+ ] ++ lib.optional stdenv'.hostPlatform.isDarwin xcbuild;
+
+ pnpmDeps = pnpm_9.fetchDeps {
+ inherit (finalAttrs) pname version src;
+ hash = "sha256-Zbe561q6xDKDIN+E/2eyQMz2GtpPvJEv2pAauMa+8pE=";
+ };
+
+ env.COREPACK_ENABLE_STRICT = 0;
+
+ buildPhase =
+ ''
+ runHook preBuild
+
+ pnpm build
+ pnpm prune --prod --ignore-scripts
+ ''
+ # The optional dependency re2 is not built by pnpm and needs to be built manually.
+ # If re2 is not built, you will get an annoying warning when you run renovate.
+ + ''
+ pushd node_modules/.pnpm/re2*/node_modules/re2
+
+ mkdir -p $HOME/.node-gyp/${nodejs.version}
+ echo 9 > $HOME/.node-gyp/${nodejs.version}/installVersion
+ ln -sfv ${nodejs}/include $HOME/.node-gyp/${nodejs.version}
+ export npm_config_nodedir=${nodejs}
+ npm run rebuild
+
+ popd
+
+ runHook postBuild
+ '';
+
+ # TODO: replace with `pnpm deploy`
+ # now it fails to build with ERR_PNPM_NO_OFFLINE_META
+ # see https://github.com/pnpm/pnpm/issues/5315
+ installPhase = ''
+ runHook preInstall
+
+ mkdir -p $out/{bin,lib/node_modules/renovate}
+ cp -r dist node_modules package.json $out/lib/node_modules/renovate
+
+ makeWrapper "${lib.getExe nodejs}" "$out/bin/renovate" \
+ --add-flags "$out/lib/node_modules/renovate/dist/renovate.js"
+ makeWrapper "${lib.getExe nodejs}" "$out/bin/config-validator" \
+ --add-flags "$out/lib/node_modules/renovate/dist/config-validator.js"
+
+ runHook postInstall
+ '';
+
+ passthru.tests = {
+ version = testers.testVersion { package = renovate; };
+ };
+
+ meta = {
+ description = "Cross-platform Dependency Automation by Mend.io";
+ homepage = "https://github.com/renovatebot/renovate";
+ license = lib.licenses.agpl3Only;
+ maintainers = with lib.maintainers; [
+ marie
+ natsukium
+ ];
+ mainProgram = "renovate";
+ platforms = nodejs.meta.platforms;
+ };
+})