Skip to content

Commit

Permalink
Merge pull request #317764 from natsukium/renovate/init
Browse files Browse the repository at this point in the history
renovate: init at 37.393.0
  • Loading branch information
natsukium authored Jun 7, 2024
2 parents 44d7616 + 5e97bc3 commit bf3faad
Showing 1 changed file with 105 additions and 0 deletions.
105 changes: 105 additions & 0 deletions pkgs/by-name/re/renovate/package.nix
Original file line number Diff line number Diff line change
@@ -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;
};
})

0 comments on commit bf3faad

Please sign in to comment.