Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: e2e test ensure conftest command to check conftest version is greater or equal to specific version #2812

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ version: 2
jobs:
test:
docker:
- image: ghcr.io/runatlantis/testing-env:2022.11.17
- image: ghcr.io/runatlantis/testing-env:2022.12.17
steps:
- checkout
- run: make check-fmt
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
if: github.event.pull_request.draft == false
name: runner / gotest
runs-on: ubuntu-22.04
container: ghcr.io/runatlantis/testing-env:2022.11.17
container: ghcr.io/runatlantis/testing-env:2022.12.17
steps:
- uses: actions/[email protected]
- run: make test-all
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -36,14 +36,14 @@ test: ## Run tests

.PHONY: docker/test
docker/test: ## Run tests in docker
docker run -it -v $(pwd):/atlantis ghcr.io/runatlantis/testing-env:2022.11.17 sh -c "cd /atlantis && make test"
docker run -it -v $(pwd):/atlantis ghcr.io/runatlantis/testing-env:2022.12.17 sh -c "cd /atlantis && make test"

test-all: ## Run tests including integration
@go test $(PKG)

.PHONY: docker/test-all
docker/test-all: ## Run all tests in docker
docker run -it -v $(pwd):/atlantis ghcr.io/runatlantis/testing-env:2022.11.17 sh -c "cd /atlantis && make test-all"
docker run -it -v $(pwd):/atlantis ghcr.io/runatlantis/testing-env:2022.12.17 sh -c "cd /atlantis && make test-all"

test-coverage:
@mkdir -p .cover
Expand Down
8 changes: 4 additions & 4 deletions server/controllers/events/events_controller_e2e_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -636,7 +636,7 @@ func TestGitHubWorkflowWithPolicyCheck(t *testing.T) {
}
// Ensure we have >= TF 0.14 locally.
ensureRunning014(t)
// Ensure we have >= Conftest 0.21 locally.
// Ensure we have conftest locally.
ensureRunningConftest(t)

cases := []struct {
Expand Down Expand Up @@ -1363,11 +1363,11 @@ func mkSubDirs(t *testing.T) (string, string, string) {
return tmp, binDir, cachedir
}

// Will fail test if conftest isn't in path and isn't version >= 0.25.0
// Will fail test if conftest isn't in path or is version less than specific version
func ensureRunningConftest(t *testing.T) {
localPath, err := exec.LookPath(fmt.Sprintf("conftest%s", ConftestVersion))
localPath, err := exec.LookPath("conftest")
if err != nil {
t.Logf("conftest >= %s must be installed to run this test", ConftestVersion)
t.Logf("conftest must be installed to run this test")
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

version is greater than or equal logic is already implemented. so just remove conftest$version command dependency using conftest command.

// Will fail test if conftest isn't in path and isn't version >= 0.25.0
func ensureRunningConftest(t *testing.T) {
localPath, err := exec.LookPath(fmt.Sprintf("conftest%s", ConftestVersion))
if err != nil {
t.Logf("conftest >= %s must be installed to run this test", ConftestVersion)
t.FailNow()
}
versionOutBytes, err := exec.Command(localPath, "--version").Output() // #nosec
if err != nil {
t.Logf("error running conftest version: %s", err)
t.FailNow()
}
versionOutput := string(versionOutBytes)
match := versionConftestRegex.FindStringSubmatch(versionOutput)
if len(match) <= 1 {
t.Logf("could not parse conftest version from %s", versionOutput)
t.FailNow()
}
localVersion, err := version.NewVersion(match[1])
Ok(t, err)
minVersion, err := version.NewVersion(ConftestVersion)
Ok(t, err)
if localVersion.LessThan(minVersion) {
t.Logf("must have contest version >= %s, you have %s", minVersion, localVersion)
t.FailNow()
}
}

t.FailNow()
}
versionOutBytes, err := exec.Command(localPath, "--version").Output() // #nosec
Expand Down