diff --git a/lib/manager/terraform-version/__snapshots__/extract.spec.ts.snap b/lib/manager/terraform-version/__snapshots__/extract.spec.ts.snap new file mode 100644 index 0000000000000000000000000000000000000000..dabebdbc5b11d453beab88829f33fb4c7334e5a6 --- /dev/null +++ b/lib/manager/terraform-version/__snapshots__/extract.spec.ts.snap @@ -0,0 +1,21 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`lib/manager/terraform-version/extract extractPackageFile() returns a result 1`] = ` +Array [ + Object { + "currentValue": "12.0.0", + "datasource": "github-releases", + "depName": "hashicorp/terraform", + }, +] +`; + +exports[`lib/manager/terraform-version/extract extractPackageFile() skips non ranges 1`] = ` +Array [ + Object { + "currentValue": "latest", + "datasource": "github-releases", + "depName": "hashicorp/terraform", + }, +] +`; diff --git a/lib/manager/terraform-version/extract.spec.ts b/lib/manager/terraform-version/extract.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..31200c84699a47364f7dd778f679789c7205745c --- /dev/null +++ b/lib/manager/terraform-version/extract.spec.ts @@ -0,0 +1,14 @@ +import { extractPackageFile } from './extract'; + +describe('lib/manager/terraform-version/extract', () => { + describe('extractPackageFile()', () => { + it('returns a result', () => { + const res = extractPackageFile('12.0.0\n'); + expect(res.deps).toMatchSnapshot(); + }); + it('skips non ranges', () => { + const res = extractPackageFile('latest'); + expect(res.deps).toMatchSnapshot(); + }); + }); +}); diff --git a/lib/manager/terraform-version/extract.ts b/lib/manager/terraform-version/extract.ts new file mode 100644 index 0000000000000000000000000000000000000000..1d466f582b325774e87c6c8837ae705eba2ac83b --- /dev/null +++ b/lib/manager/terraform-version/extract.ts @@ -0,0 +1,13 @@ +import * as datasourceGitHubRelease from '../../datasource/github-releases'; +import { logger } from '../../logger'; +import { PackageDependency, PackageFile } from '../common'; + +export function extractPackageFile(content: string): PackageFile { + logger.trace('terraform-version.extractPackageFile()'); + const dep: PackageDependency = { + depName: 'hashicorp/terraform', + currentValue: content.trim(), + datasource: datasourceGitHubRelease.id, + }; + return { deps: [dep] }; +} diff --git a/lib/manager/terraform-version/index.ts b/lib/manager/terraform-version/index.ts new file mode 100644 index 0000000000000000000000000000000000000000..9a55bdbd5c3eb7dc6e39b1fd049804ceded7485c --- /dev/null +++ b/lib/manager/terraform-version/index.ts @@ -0,0 +1,9 @@ +import * as hashicorpVersioning from '../../versioning/hashicorp'; + +export { extractPackageFile } from './extract'; + +export const defaultConfig = { + fileMatch: ['(^|/)\\.terraform-version$'], + versioning: hashicorpVersioning.id, + extractVersion: '^v(?<version>.*)$', +}; diff --git a/lib/manager/terraform-version/readme.md b/lib/manager/terraform-version/readme.md new file mode 100644 index 0000000000000000000000000000000000000000..f803cd62aa79c49c27ebbf00638cf600772b3284 --- /dev/null +++ b/lib/manager/terraform-version/readme.md @@ -0,0 +1 @@ +This will maintain `.terraform-version` files. Available versions will be determined from the official Terraform downloads page.