Skip to content

Commit

Permalink
fix(nix): flake lock refresh
Browse files Browse the repository at this point in the history
  • Loading branch information
SuperSandro2000 committed Feb 3, 2025
1 parent 77a5c15 commit 78997c3
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 19 deletions.
24 changes: 12 additions & 12 deletions lib/modules/manager/nix/extract.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ describe('modules/manager/nix/extract', () => {

it('returns null when no inputs', async () => {
fs.readLocalFile.mockResolvedValueOnce(flake1Lock);
expect(await extractPackageFile('', 'flake.nix')).toBeNull();
expect(await extractPackageFile('', 'flake.lock')).toBeNull();
});

const flake2Lock = `{
Expand Down Expand Up @@ -120,12 +120,12 @@ describe('modules/manager/nix/extract', () => {

it('returns nixpkgs input', async () => {
fs.readLocalFile.mockResolvedValueOnce(flake2Lock);
expect(await extractPackageFile('', 'flake.nix')).toEqual({
expect(await extractPackageFile('', 'flake.lock')).toEqual({
deps: [
{
depName: 'nixpkgs',
currentValue: "nixos-unstable",
currentDigest: '9f4128e00b0ae8ec65918efeba59db998750ead6',
currentValue: 'nixos-unstable',
datasource: GitRefsDatasource.id,
packageName: 'https://github.com/NixOS/nixpkgs',
},
Expand Down Expand Up @@ -162,7 +162,7 @@ describe('modules/manager/nix/extract', () => {

it('includes nixpkgs with no explicit ref', async () => {
fs.readLocalFile.mockResolvedValueOnce(flake3Lock);
expect(await extractPackageFile('', 'flake.nix')).toMatchObject({
expect(await extractPackageFile('', 'flake.lock')).toMatchObject({
deps: [
{
currentDigest: '612ee628421ba2c1abca4c99684862f76cb3b089',
Expand Down Expand Up @@ -221,7 +221,7 @@ describe('modules/manager/nix/extract', () => {

it('includes patchelf from HEAD', async () => {
fs.readLocalFile.mockResolvedValueOnce(flake4Lock);
expect(await extractPackageFile('', 'flake.nix')).toMatchObject({
expect(await extractPackageFile('', 'flake.lock')).toMatchObject({
deps: [
{
currentDigest: 'a0f54334df36770b335c051e540ba40afcbf8378',
Expand Down Expand Up @@ -263,7 +263,7 @@ describe('modules/manager/nix/extract', () => {

it('includes ijq from sourcehut without a flake', async () => {
fs.readLocalFile.mockResolvedValueOnce(flake5Lock);
expect(await extractPackageFile('', 'flake.nix')).toMatchObject({
expect(await extractPackageFile('', 'flake.lock')).toMatchObject({
deps: [
{
currentDigest: '88f0d9ae98942bf49cba302c42b2a0f6e05f9b58',
Expand Down Expand Up @@ -305,7 +305,7 @@ describe('modules/manager/nix/extract', () => {

it('includes home-manager from gitlab', async () => {
fs.readLocalFile.mockResolvedValueOnce(flake6Lock);
expect(await extractPackageFile('', 'flake.nix')).toMatchObject({
expect(await extractPackageFile('', 'flake.lock')).toMatchObject({
deps: [
{
currentDigest: '65ae9c147349829d3df0222151f53f79821c5134',
Expand All @@ -327,7 +327,7 @@ describe('modules/manager/nix/extract', () => {

it('test other version', async () => {
fs.readLocalFile.mockResolvedValueOnce(flake7Lock);
expect(await extractPackageFile('', 'flake.nix')).toBeNull();
expect(await extractPackageFile('', 'flake.lock')).toBeNull();
});

const flake8Lock = `{
Expand Down Expand Up @@ -361,7 +361,7 @@ describe('modules/manager/nix/extract', () => {

it('includes nixpkgs with ref and shallow arguments', async () => {
fs.readLocalFile.mockResolvedValueOnce(flake8Lock);
expect(await extractPackageFile('', 'flake.nix')).toMatchObject({
expect(await extractPackageFile('', 'flake.lock')).toMatchObject({
deps: [
{
currentDigest: '5633bcff0c6162b9e4b5f1264264611e950c8ec7',
Expand Down Expand Up @@ -401,7 +401,7 @@ describe('modules/manager/nix/extract', () => {

it('includes nixpkgs but using indirect type that cannot be updated', async () => {
fs.readLocalFile.mockResolvedValueOnce(flake9Lock);
expect(await extractPackageFile('', 'flake.nix')).toBeNull();
expect(await extractPackageFile('', 'flake.lock')).toBeNull();
});

const flake10Lock = `{
Expand Down Expand Up @@ -488,7 +488,7 @@ describe('modules/manager/nix/extract', () => {

it('includes flake from GitHub Enterprise', async () => {
fs.readLocalFile.mockResolvedValueOnce(flake10Lock);
expect(await extractPackageFile('', 'flake.nix')).toMatchObject({
expect(await extractPackageFile('', 'flake.lock')).toMatchObject({
deps: [
{
currentDigest: '6bf2706348447df6f8b86b1c3e54f87b0afda84f',
Expand Down Expand Up @@ -591,7 +591,7 @@ describe('modules/manager/nix/extract', () => {

it('includes flake with tarball type', async () => {
fs.readLocalFile.mockResolvedValueOnce(flake11Lock);
expect(await extractPackageFile('', 'flake.nix')).toMatchObject({
expect(await extractPackageFile('', 'flake.lock')).toMatchObject({
deps: [
{
currentDigest: 'c7e39452affcc0f89e023091524e38b3aaf109e9',
Expand Down
16 changes: 10 additions & 6 deletions lib/modules/manager/nix/extract.ts
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ export async function extractPackageFile(

const deps: PackageDependency[] = [];

const match = nixpkgsRegex.exec(content);
if (match?.groups) {
const { ref } = match.groups;
const nixpkgsMatch = nixpkgsRegex.exec(content);
if (nixpkgsMatch?.groups) {
const { ref } = nixpkgsMatch.groups;
deps.push({
depName: 'nixpkgs',
currentValue: ref,
Expand All @@ -37,6 +37,13 @@ export async function extractPackageFile(
});
}

if (!packageFile.match(regEx(/\.lock$/))) {
if (deps.length) {
return { deps };
}
return null;
}

const flakeLockParsed = NixFlakeLock.safeParse(lockContents);
if (!flakeLockParsed.success) {
logger.debug(
Expand All @@ -55,9 +62,6 @@ export async function extractPackageFile(
`flake.lock is missing "root" node`,
);

if (deps.length) {
return { deps };
}
return null;
}

Expand Down
2 changes: 1 addition & 1 deletion lib/modules/manager/nix/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ export const supportsLockFileMaintenance = true;
export const url = 'https://nix.dev';

export const defaultConfig = {
fileMatch: ['(^|/)flake\\.nix$'],
fileMatch: ['(^|/)flake\\.(nix|lock)$'],
commitMessageTopic: 'nix',
commitMessageExtra: 'to {{newValue}}',
enabled: false,
Expand Down

0 comments on commit 78997c3

Please sign in to comment.