From 23663874250991bc9a7a36d1be253d46d7deeffa Mon Sep 17 00:00:00 2001 From: krrrr38 Date: Sat, 17 Dec 2022 14:18:27 +0900 Subject: [PATCH] feat: renovate handle regexManagers to update conftest/tf versions --- .circleci/config.yml | 1 + Dockerfile | 2 + Dockerfile.dev | 1 + renovate.json | 6 --- renovate.json5 | 44 +++++++++++++++++++ .../events/events_controller_e2e_test.go | 2 +- testdrive/utils.go | 2 +- testing/Dockerfile | 2 + 8 files changed, 52 insertions(+), 8 deletions(-) delete mode 100644 renovate.json create mode 100644 renovate.json5 diff --git a/.circleci/config.yml b/.circleci/config.yml index f6e4a1605e..fd5da0f9fd 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -15,6 +15,7 @@ jobs: # We do this instead of setting --default-tf-version because setting # that flag starts the download asynchronously so we'd have a race # condition. + # renovate: datasource=github-releases depName=hashicorp/terraform versioning=hashicorp TERRAFORM_VERSION: 1.3.5 steps: - checkout diff --git a/Dockerfile b/Dockerfile index 5692a54591..7f56bc198d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,6 +13,7 @@ FROM ghcr.io/runatlantis/atlantis-base:2022.11.24 AS base ARG TARGETPLATFORM # install terraform binaries +# renovate: datasource=github-releases depName=hashicorp/terraform versioning=hashicorp ENV DEFAULT_TERRAFORM_VERSION=1.3.5 # In the official Atlantis image we only have the latest of each Terraform version. @@ -36,6 +37,7 @@ RUN AVAILABLE_TERRAFORM_VERSIONS="1.0.11 1.1.9 1.2.9 ${DEFAULT_TERRAFORM_VERSION done && \ ln -s "/usr/local/bin/tf/versions/${DEFAULT_TERRAFORM_VERSION}/terraform" /usr/local/bin/terraform +# renovate: datasource=github-releases depName=open-policy-agent/conftest ENV DEFAULT_CONFTEST_VERSION=0.35.0 RUN AVAILABLE_CONFTEST_VERSIONS="${DEFAULT_CONFTEST_VERSION}" && \ diff --git a/Dockerfile.dev b/Dockerfile.dev index d9ed7aad63..bff737fc1f 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -1,6 +1,7 @@ FROM ghcr.io/runatlantis/atlantis:latest COPY atlantis /usr/local/bin/atlantis # TODO: remove this once we get this in the base image +# renovate: datasource=github-releases depName=open-policy-agent/conftest ENV DEFAULT_CONFTEST_VERSION=0.35.0 WORKDIR /atlantis/src diff --git a/renovate.json b/renovate.json deleted file mode 100644 index 39a2b6e9a5..0000000000 --- a/renovate.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "extends": [ - "config:base" - ] -} diff --git a/renovate.json5 b/renovate.json5 new file mode 100644 index 0000000000..d19cc89e57 --- /dev/null +++ b/renovate.json5 @@ -0,0 +1,44 @@ +{ + extends: [ + "config:base", + ":disableRateLimiting", + ], + automerge: false, + platformAutomerge: false, + postUpdateOptions: ["gomodTidy", "yarnDedupeHighest"], + // https://docs.renovatebot.com/modules/manager/regex/ + regexManagers: [ + { + fileMatch: ["(^|/)Dockerfile$", "(^|/)Dockerfile\\.[^/]*$"], + matchStrings: [ + // example: + // renovate: datasource=github-releases depName=hashicorp/terraform versioning=hashicorp + // ENV DEFAULT_TERRAFORM_VERSION=x.x.x + "renovate: datasource=(?.*?) depName=(?.*?)( versioning=(?.*?))?\\sENV .*?_VERSION=(?.*)\\s", + ], + versioningTemplate: "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}", + extractVersionTemplate: '^v(?\\d+\\.\\d+\\.\\d+)', + }, + { + fileMatch: [".*go$"], + matchStrings: [ + // example: + // const ConftestVersion = "x.x.x" // renovate: datasource=github-releases depName=open-policy-agent/conftest + "\\sconst .*Version = \"(?.*)\"\\s// renovate: datasource=(?.*?) depName=(?.*?)( versioning=(?.*?))?\\s", + ], + versioningTemplate: "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}", + extractVersionTemplate: '^v(?\\d+\\.\\d+\\.\\d+)', + }, + { + fileMatch: [".circleci/config.yml$"], + matchStrings: [ + // example: + // # renovate: datasource=github-releases depName=hashicorp/terraform versioning=hashicorp + // TRRAFORM_VERSION: x.x.x + "renovate: datasource=(?.*?) depName=(?.*?)( versioning=(?.*?))?\\s.*?_VERSION: (?.*)\\s", + ], + versioningTemplate: "{{#if versioning}}{{{versioning}}}{{else}}semver{{/if}}", + extractVersionTemplate: '^v(?\\d+\\.\\d+\\.\\d+)', + }, + ] +} diff --git a/server/controllers/events/events_controller_e2e_test.go b/server/controllers/events/events_controller_e2e_test.go index b9a2ebf867..3ce777c827 100644 --- a/server/controllers/events/events_controller_e2e_test.go +++ b/server/controllers/events/events_controller_e2e_test.go @@ -42,7 +42,7 @@ import ( . "github.com/runatlantis/atlantis/testing" ) -const ConftestVersion = "0.35.0" +const ConftestVersion = "0.35.0" // renovate: datasource=github-releases depName=open-policy-agent/conftest var applyLocker locking.ApplyLocker var userConfig server.UserConfig diff --git a/testdrive/utils.go b/testdrive/utils.go index 0cbfe0f4e0..921f129b9b 100644 --- a/testdrive/utils.go +++ b/testdrive/utils.go @@ -34,7 +34,7 @@ import ( ) const hashicorpReleasesURL = "https://releases.hashicorp.com" -const terraformVersion = "1.3.5" +const terraformVersion = "1.3.6" // renovate: datasource=github-releases depName=hashicorp/terraform versioning=hashicorp const ngrokDownloadURL = "https://bin.equinox.io/c/4VmDzA7iaHb" const ngrokAPIURL = "localhost:41414" // We hope this isn't used. const atlantisPort = 4141 diff --git a/testing/Dockerfile b/testing/Dockerfile index eefd5c2bcd..8778338a7b 100644 --- a/testing/Dockerfile +++ b/testing/Dockerfile @@ -5,6 +5,7 @@ RUN apt-get update && apt-get --no-install-recommends -y install unzip \ && rm -rf /var/lib/apt/lists/* # Install Terraform +# renovate: datasource=github-releases depName=hashicorp/terraform versioning=hashicorp ENV TERRAFORM_VERSION=1.3.5 RUN case $(uname -m) in x86_64|amd64) ARCH="amd64" ;; aarch64|arm64|armv7l) ARCH="arm64" ;; esac && \ wget -nv -O terraform.zip https://releases.hashicorp.com/terraform/${TERRAFORM_VERSION}/terraform_${TERRAFORM_VERSION}_linux_${ARCH}.zip && \ @@ -14,6 +15,7 @@ RUN case $(uname -m) in x86_64|amd64) ARCH="amd64" ;; aarch64|arm64|armv7l) ARCH rm terraform.zip # Install conftest +# renovate: datasource=github-releases depName=open-policy-agent/conftest ENV CONFTEST_VERSION=0.35.0 SHELL ["/bin/bash", "-o", "pipefail", "-c"] RUN case $(uname -m) in x86_64|amd64) ARCH="x86_64" ;; aarch64|arm64|armv7l) ARCH="arm64" ;; esac && \