diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 20132136..00a6d523 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -19,20 +19,16 @@ } }, + // Do not change the formatting of this property, it is used by renovate regex to detect versions "features": { "ghcr.io/devcontainers/features/github-cli:1": { "version": "2.72.0" }, "ghcr.io/devcontainers/features/docker-in-docker:2": {}, - "ghcr.io/devcontainers/features/go:1": { - "version": "1.25", - "golangciLintVersion": "2.6.1" - }, + "ghcr.io/devcontainers/features/go:1": { "version": "1.25", "golangciLintVersion": "2.6.1" }, "ghcr.io/guiyomh/features/goreleaser:0": { "version": "2.12.7" }, "ghcr.io/guiyomh/features/gotestsum:0": { "version": "1.12.1" }, "ghcr.io/szkiba/devcontainer-features/gosec:1": { "version": "2.22.10" }, - "ghcr.io/szkiba/devcontainer-features/govulncheck:1": { - "version": "1.1.4" - }, - "ghcr.io/szkiba/devcontainer-features/bats:1": { "version": "1.11.1" }, + "ghcr.io/szkiba/devcontainer-features/govulncheck:1": { "version": "1.1.4" }, + "ghcr.io/szkiba/devcontainer-features/bats:1": { "version": "1.13.0" }, "ghcr.io/szkiba/devcontainer-features/cdo:1": { "version": "0.1.2" }, "ghcr.io/szkiba/devcontainer-features/mdcode:1": { "version": "0.2.0" }, "ghcr.io/devcontainers-extra/features/eget:1": { "version": "1.3.4" } diff --git a/.github/workflows/extension-release.yml b/.github/workflows/extension-release.yml index 6c78b246..4b709435 100644 --- a/.github/workflows/extension-release.yml +++ b/.github/workflows/extension-release.yml @@ -191,7 +191,11 @@ jobs: if: ${{ inputs.bats != '' && runner.os == 'Linux' }} uses: bats-core/bats-action@42fcc8700f773c075a16a90eb11674c0318ad507 # 3.0.1 with: - bats-version: "1.11.1" + bats-version: "1.13.0" + support-install: false + assert-install: false + detik-install: false + file-install: false - name: Setup xk6 ${{ inputs.xk6-version }} uses: grafana/setup-xk6@92356c2715efc0f13876e324b2b05d8ea26c4e59 # v1.1.0 diff --git a/.github/workflows/extension-validate.yml b/.github/workflows/extension-validate.yml index 05519ab4..d2f7ce74 100644 --- a/.github/workflows/extension-validate.yml +++ b/.github/workflows/extension-validate.yml @@ -327,7 +327,12 @@ jobs: if: ${{ inputs.bats != '' && runner.os == 'Linux' }} uses: bats-core/bats-action@42fcc8700f773c075a16a90eb11674c0318ad507 # 3.0.1 with: - bats-version: "1.11.1" + bats-version: "1.13.0" + support-install: false + assert-install: false + detik-install: false + file-install: false + - name: Setup xk6 ${{ inputs.xk6-version }} uses: grafana/setup-xk6@92356c2715efc0f13876e324b2b05d8ea26c4e59 # v1.1.0 @@ -464,7 +469,7 @@ jobs: - name: Config run: | - cat .devcontainer/devcontainer.json | jq -r ' + cat .devcontainer/devcontainer.json | sed 's/^ *\/\/.*//' | jq -r ' { GO_VERSION: .features["ghcr.io/devcontainers/features/go:1"]["version"], GOLANGCI_LINT_VERSION: .features["ghcr.io/devcontainers/features/go:1"]["golangciLintVersion"] diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 49e7b02a..7924a15f 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -11,6 +11,8 @@ jobs: integration: name: Integration runs-on: ubuntu-latest + env: + GORELEASER_VERSION: "2.8.2" steps: - name: Checkout code uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5 @@ -27,13 +29,17 @@ jobs: - name: GoReleaser build uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0 with: - version: "2.8.2" + version: ${{ env.GORELEASER_VERSION }} args: build --clean --snapshot --single-target --id xk6 - name: Setup Bats uses: bats-core/bats-action@42fcc8700f773c075a16a90eb11674c0318ad507 # 3.0.1 with: - bats-version: "1.11.1" + bats-version: "1.13.0" + support-install: false + assert-install: false + detik-install: false + file-install: false - name: Setup govulncheck env: diff --git a/.github/workflows/liveness.yml b/.github/workflows/liveness.yml index 1b43cb90..4b961fb0 100644 --- a/.github/workflows/liveness.yml +++ b/.github/workflows/liveness.yml @@ -126,6 +126,10 @@ jobs: uses: bats-core/bats-action@42fcc8700f773c075a16a90eb11674c0318ad507 # 3.0.1 with: bats-version: "1.13.0" + support-install: false + assert-install: false + detik-install: false + file-install: false - name: Change integration test artifact if: ${{ needs.config.outputs.xk6-it-version != 'submodule' }} @@ -200,6 +204,10 @@ jobs: uses: bats-core/bats-action@42fcc8700f773c075a16a90eb11674c0318ad507 # 3.0.1 with: bats-version: "1.13.0" + support-install: false + assert-install: false + detik-install: false + file-install: false - name: Pull Docker image shell: bash diff --git a/.github/workflows/tooling-release.yml b/.github/workflows/tooling-release.yml index 3a14bcf7..0665ca5f 100644 --- a/.github/workflows/tooling-release.yml +++ b/.github/workflows/tooling-release.yml @@ -130,7 +130,11 @@ jobs: if: ${{ inputs.bats != '' && runner.os == 'Linux' }} uses: bats-core/bats-action@42fcc8700f773c075a16a90eb11674c0318ad507 # 3.0.1 with: - bats-version: "1.11.1" + bats-version: "1.13.0" + support-install: false + assert-install: false + detik-install: false + file-install: false - name: GoReleaser snapshot uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0 diff --git a/.github/workflows/tooling-validate.yml b/.github/workflows/tooling-validate.yml index 423e5e2f..e0dc66bb 100644 --- a/.github/workflows/tooling-validate.yml +++ b/.github/workflows/tooling-validate.yml @@ -224,7 +224,11 @@ jobs: if: ${{ inputs.bats != '' && runner.os == 'Linux' }} uses: bats-core/bats-action@42fcc8700f773c075a16a90eb11674c0318ad507 # 3.0.1 with: - bats-version: "1.11.1" + bats-version: "1.13.0" + support-install: false + assert-install: false + detik-install: false + file-install: false - name: GoReleaser build uses: goreleaser/goreleaser-action@e435ccd777264be153ace6237001ef4d979d3a7a # v6.4.0 @@ -300,7 +304,7 @@ jobs: - name: Config run: | - cat .devcontainer/devcontainer.json | jq -r ' + cat .devcontainer/devcontainer.json | sed 's/^ *\/\/.*//' | jq -r ' { GO_VERSION: .features["ghcr.io/devcontainers/features/go:1"]["version"], GOLANGCI_LINT_VERSION: .features["ghcr.io/devcontainers/features/go:1"]["golangciLintVersion"], diff --git a/renovate.json b/renovate.json index 0a664bcc..629cc5a6 100644 --- a/renovate.json +++ b/renovate.json @@ -1,8 +1,6 @@ { "$schema": "https://docs.renovatebot.com/renovate-schema.json", - "ignorePaths": [ - "**/vendor/**" - ], + "ignorePaths": ["**/vendor/**"], "prConcurrentLimit": 20, "customManagers": [ { @@ -33,197 +31,176 @@ }, { "customType": "regex", - "managerFilePatterns": [ - "/\\.devcontainer/devcontainer\\.json$/" + "managerFilePatterns": ["/\\.github/workflows/.+\\.yml$/"], + "matchStrings": [ + "GORELEASER_VERSION:\\s+[\"']?(?v?[0-9.]+)[\"']?" ], + "datasourceTemplate": "github-releases", + "depNameTemplate": "goreleaser/goreleaser", + "versioningTemplate": "semver" + }, + { + "customType": "regex", + "managerFilePatterns": ["/\\.github/workflows/.+\\.yml$/"], "matchStrings": [ - "\"golangciLintVersion\":\\s+[\"'](?v?[0-9.]+)[\"']" + "GOVULNCHECK_VERSION:\\s+[\"']?(?v?[0-9.]+)[\"']?" ], "datasourceTemplate": "github-releases", - "depNameTemplate": "golangci/golangci-lint", + "depNameTemplate": "golang.org/x/vuln/cmd/govulncheck", "versioningTemplate": "semver" }, { "customType": "regex", - "managerFilePatterns": [ - "/\\.devcontainer/devcontainer\\.json$/" + "managerFilePatterns": ["/\\.github/workflows/.+\\.yml$/"], + "matchStrings": [ + "GOSEC_VERSION:\\s+[\"']?(?v?[0-9.]+)[\"']?" ], + "datasourceTemplate": "github-releases", + "depNameTemplate": "securego/gosec", + "versioningTemplate": "semver" + }, + { + "customType": "regex", + "managerFilePatterns": ["/\\.github/workflows/.+\\.yml$/"], "matchStrings": [ - "ghcr\\.io/guiyomh/features/goreleaser:[0-9]+\"[^}]*\"version\":\\s+[\"'](?v?[0-9.]+)[\"']" + "bats-version:\\s+[\"']?(?v?[0-9.]+)[\"']?" ], "datasourceTemplate": "github-releases", - "depNameTemplate": "goreleaser/goreleaser", + "depNameTemplate": "bats-core/bats-core", "versioningTemplate": "semver" }, { "customType": "regex", - "managerFilePatterns": [ - "/\\.devcontainer/devcontainer\\.json$/" + "managerFilePatterns": ["/\\.devcontainer/devcontainer\\.json$/"], + "matchStrings": [ + "\"golangciLintVersion\":\\s+\"(?[0-9.]+)\"" ], + "datasourceTemplate": "github-releases", + "depNameTemplate": "golangci/golangci-lint", + "versioningTemplate": "semver" + }, + { + "customType": "regex", + "managerFilePatterns": ["/\\.devcontainer/devcontainer\\.json$/"], "matchStrings": [ - "ghcr\\.io/szkiba/devcontainer-features/gosec:[0-9]+\"[^}]*\"version\":\\s+[\"'](?v?[0-9.]+)[\"']" + "ghcr\\.io/guiyomh/features/goreleaser:\\d+\":[^}]+\"version\":\\s+\"(?[0-9.]+)\"" ], "datasourceTemplate": "github-releases", - "depNameTemplate": "securego/gosec", + "depNameTemplate": "goreleaser/goreleaser", "versioningTemplate": "semver" }, { "customType": "regex", - "managerFilePatterns": [ - "/\\.devcontainer/devcontainer\\.json$/" + "managerFilePatterns": ["/\\.devcontainer/devcontainer\\.json$/"], + "matchStrings": [ + "ghcr\\.io/szkiba/devcontainer-features/gosec:\\d+\":[^}]+\"version\":\\s+\"(?[0-9.]+)\"" ], + "datasourceTemplate": "github-releases", + "depNameTemplate": "securego/gosec", + "versioningTemplate": "semver" + }, + { + "customType": "regex", + "managerFilePatterns": ["/\\.devcontainer/devcontainer\\.json$/"], "matchStrings": [ - "ghcr\\.io/szkiba/devcontainer-features/govulncheck:[0-9]+\"[^}]*\"version\":\\s+[\"'](?v?[0-9.]+)[\"']" + "ghcr\\.io/szkiba/devcontainer-features/govulncheck:\\d+\":[^}]+\"version\":\\s+\"(?[0-9.]+)\"" ], "datasourceTemplate": "go", "depNameTemplate": "golang.org/x/vuln/cmd/govulncheck", "versioningTemplate": "semver" + }, + { + "customType": "regex", + "managerFilePatterns": ["/\\.devcontainer/devcontainer\\.json$/"], + "matchStrings": [ + "ghcr\\.io/szkiba/devcontainer-features/bats:\\d+\":[^}]+\"version\":\\s+\"(?[0-9.]+)\"" + ], + "datasourceTemplate": "github-releases", + "depNameTemplate": "bats-core/bats-core", + "versioningTemplate": "semver" } ], "packageRules": [ { "description": "Update GitHub Actions workflow dependencies", - "matchManagers": [ - "github-actions" - ] + "matchManagers": ["github-actions"] }, { "description": "Update Docker base images", - "matchManagers": [ - "dockerfile" - ], - "extends": [ - "schedule:daily" - ] + "matchManagers": ["dockerfile"], + "extends": ["schedule:daily"] }, { "description": "Update workflow tooling versions (golangci-lint, goreleaser)", - "matchManagers": [ - "custom.regex" - ], - "matchDepNames": [ - "golangci/golangci-lint", - "goreleaser/goreleaser" - ], - "matchFileNames": [ - ".github/workflows/**", - "docs/workflows/README.md" - ], + "matchManagers": ["custom.regex"], + "matchDepNames": ["golangci/golangci-lint", "goreleaser/goreleaser"], + "matchFileNames": [".github/workflows/**", "docs/workflows/README.md"], "groupName": "workflow tooling", - "extends": [ - "schedule:weekly" - ] + "extends": ["schedule:weekly"] }, { "description": "Update devcontainer tooling versions (golangci-lint, goreleaser)", - "matchManagers": [ - "custom.regex" - ], - "matchDepNames": [ - "golangci/golangci-lint", - "goreleaser/goreleaser" - ], - "matchFileNames": [ - ".devcontainer/**" - ], + "matchManagers": ["custom.regex"], + "matchDepNames": ["golangci/golangci-lint", "goreleaser/goreleaser"], + "matchFileNames": [".devcontainer/**"], "groupName": "workflow tooling", - "extends": [ - "schedule:weekly" - ] + "extends": ["schedule:weekly"] }, { "description": "Update devcontainer security tools (gosec, govulncheck)", - "matchManagers": [ - "custom.regex" - ], + "matchManagers": ["custom.regex"], "matchDepNames": [ "securego/gosec", - "golang.org/x/vuln/cmd/govulncheck" - ], - "matchFileNames": [ - ".devcontainer/**" + "golang.org/x/vuln/cmd/govulncheck", + "bats-core/bats-core" ], + "matchFileNames": [".devcontainer/**"], "groupName": "workflow tooling", - "extends": [ - "schedule:weekly" - ] + "extends": ["schedule:weekly"] }, { "description": "Update Go modules with automatic tidying and import path updates", - "matchManagers": [ - "gomod" - ], + "matchManagers": ["gomod"], "enabled": true, - "postUpdateOptions": [ - "gomodTidy", - "gomodUpdateImportPaths" - ], - "extends": [ - "schedule:weekly" - ] + "postUpdateOptions": ["gomodTidy", "gomodUpdateImportPaths"], + "extends": ["schedule:weekly"] }, { "description": "Skip indirect Go dependency updates", - "matchManagers": [ - "gomod" - ], - "matchDepTypes": [ - "indirect" - ], + "matchManagers": ["gomod"], + "matchDepTypes": ["indirect"], "enabled": false }, { "description": "Skip Go runtime versions with zero patch number (allow 1.23.1 but skip 1.23.0)", - "matchManagers": [ - "gomod" - ], - "matchPackageNames": [ - "go" - ], + "matchManagers": ["gomod"], + "matchPackageNames": ["go"], "allowedVersions": "/^(?:v)?\\d+\\.\\d+\\.[1-9]\\d*$/", - "extends": [ - "schedule:daily" - ] + "extends": ["schedule:daily"] }, { "description": "Update k6 core and ecosystem packages", - "matchManagers": [ - "gomod" - ], + "matchManagers": ["gomod"], "matchPackageNames": [ "/^go\\.k6\\.io\\/k6/", "/^github\\.com\\/grafana\\/k6/" ], "groupName": "k6 ecosystem", - "extends": [ - "schedule:daily" - ] + "extends": ["schedule:daily"] }, { "description": "Group golang.org/x module updates", - "matchManagers": [ - "gomod" - ], - "matchPackageNames": [ - "/^golang\\.org\\/x\\//" - ], + "matchManagers": ["gomod"], + "matchPackageNames": ["/^golang\\.org\\/x\\//"], "groupName": "golang.org/x packages", - "extends": [ - "schedule:daily" - ] + "extends": ["schedule:daily"] }, { "description": "Group google.golang.org module updates", - "matchManagers": [ - "gomod" - ], - "matchPackageNames": [ - "/^google\\.golang\\.org\\//" - ], + "matchManagers": ["gomod"], + "matchPackageNames": ["/^google\\.golang\\.org\\//"], "groupName": "google.golang.org packages", - "extends": [ - "schedule:daily" - ] + "extends": ["schedule:daily"] } ] }