-
Notifications
You must be signed in to change notification settings - Fork 2.4k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat(manager/terragrunt): support lockFileMaintenance (#20833)
Co-authored-by: Rhys Arkins <rhys@arkins.net> Co-authored-by: Sebastian Poxhofer <secustor@users.noreply.github.com>
- Loading branch information
1 parent
7cfd714
commit 2904637
Showing
4 changed files
with
96 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,71 @@ | ||
import { join } from 'upath'; | ||
import { GlobalConfig } from '../../../config/global'; | ||
import type { UpdateType } from '../../../config/types'; | ||
import * as terraformLockfile from '../terraform/lockfile'; | ||
import type { UpdateArtifactsConfig } from '../types'; | ||
import { updateArtifacts } from './artifacts'; | ||
|
||
jest.mock('../terraform/lockfile'); | ||
|
||
const config = { | ||
constraints: {}, | ||
}; | ||
|
||
const adminConfig = { | ||
// `join` fixes Windows CI | ||
localDir: join('/tmp/github/some/repo'), | ||
cacheDir: join('/tmp/renovate/cache'), | ||
containerbaseDir: join('/tmp/renovate/cache/containerbase'), | ||
}; | ||
|
||
describe('modules/manager/terragrunt/artifacts', () => { | ||
const updateTypes: UpdateType[] = [ | ||
'digest', | ||
'pin', | ||
'rollback', | ||
'patch', | ||
'minor', | ||
'major', | ||
'replacement', | ||
'pinDigest', | ||
'lockfileUpdate', | ||
'bump', | ||
]; | ||
|
||
beforeEach(() => { | ||
GlobalConfig.set(adminConfig); | ||
}); | ||
|
||
it('calls terraform updateArtifacts if the update type is lockfileMaintenance', async () => { | ||
const localConfig: UpdateArtifactsConfig = { | ||
updateType: 'lockFileMaintenance', | ||
...config, | ||
}; | ||
|
||
await updateArtifacts({ | ||
packageFileName: '', | ||
updatedDeps: [], | ||
newPackageFileContent: '', | ||
config: localConfig, | ||
}); | ||
expect(terraformLockfile.updateArtifacts).toHaveBeenCalledOnce(); | ||
}); | ||
|
||
it.each(updateTypes)( | ||
'does not call terraform updateArtifacts if the update type is %s', | ||
async (updateType) => { | ||
const localConfig: UpdateArtifactsConfig = { | ||
updateType, | ||
...config, | ||
}; | ||
|
||
await updateArtifacts({ | ||
packageFileName: '', | ||
updatedDeps: [], | ||
newPackageFileContent: '', | ||
config: localConfig, | ||
}); | ||
expect(terraformLockfile.updateArtifacts).not.toHaveBeenCalled(); | ||
} | ||
); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
import { logger } from '../../../logger'; | ||
import { updateArtifacts as updateTerraformArtifacts } from '../terraform/lockfile/index'; | ||
import type { UpdateArtifact, UpdateArtifactsResult } from '../types'; | ||
|
||
export async function updateArtifacts( | ||
artifact: UpdateArtifact | ||
): Promise<UpdateArtifactsResult[] | null> { | ||
if (artifact.config.updateType !== 'lockFileMaintenance') { | ||
logger.debug( | ||
`UpdateType ${ | ||
artifact.config.updateType as string | ||
} is not supported for terragrunt` | ||
); | ||
return null; | ||
} | ||
|
||
return await updateTerraformArtifacts(artifact); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters