Skip to content

Commit

Permalink
Merge branch 'main' into hotfix-improve-messaging-on-retries
Browse files Browse the repository at this point in the history
  • Loading branch information
Racer159 authored Nov 15, 2023
2 parents 091e87e + 89d6f90 commit 83cf4cd
Show file tree
Hide file tree
Showing 6 changed files with 60 additions and 12 deletions.
7 changes: 7 additions & 0 deletions .github/workflows/test-e2e-shim.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,13 @@ jobs:
run: |
echo skipped
validate-without-cluster:
runs-on: ubuntu-latest
steps:
- name: Skipped
run: |
echo skipped
validate-k3d:
runs-on: ubuntu-latest
steps:
Expand Down
40 changes: 36 additions & 4 deletions .github/workflows/test-e2e.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,38 @@ jobs:
path: build/
retention-days: 1

validate-without-cluster:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@8ade135a41bc03ea155e62e844d188df1ea18608 # v4.1.0

- name: Download build artifacts
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
with:
name: build-artifacts
path: build/

- name: Setup golang
uses: ./.github/actions/golang

- name: Make Zarf executable
run: |
chmod +x build/zarf
# Before we run the regular tests we need to aggressively cleanup files to reduce disk pressure
- name: Cleanup files
uses: ./.github/actions/cleanup-files

- name: Run tests
run: |
make test-e2e-without-cluster ARCH=amd64
- name: Save logs
if: always()
uses: ./.github/actions/save-logs

# Run the tests on k3d
validate-k3d:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -73,7 +105,7 @@ jobs:

- name: Run tests
run: |
make test-e2e ARCH=amd64
make test-e2e-with-cluster ARCH=amd64
- name: Save logs
if: always()
Expand Down Expand Up @@ -109,7 +141,7 @@ jobs:
# in a previous step. This test run will use Zarf to create a K3s cluster, and a brand new cluster will be
# used for each test
run: |
sudo env "PATH=$PATH" CI=true APPLIANCE_MODE=true make test-e2e ARCH=amd64
sudo env "PATH=$PATH" CI=true APPLIANCE_MODE=true make test-e2e-with-cluster ARCH=amd64
- name: Save logs
if: always()
Expand Down Expand Up @@ -147,7 +179,7 @@ jobs:

- name: Run tests
run: |
make test-e2e ARCH=amd64
make test-e2e-with-cluster ARCH=amd64
- name: Save logs
if: always()
Expand Down Expand Up @@ -183,7 +215,7 @@ jobs:

- name: Run tests
run: |
make test-e2e ARCH=amd64
make test-e2e-with-cluster ARCH=amd64
- name: Save logs
if: always()
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-upgrade.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ jobs:
# NOTE: "PATH=$PATH" preserves the default user $PATH. This is needed to maintain the version of go installed
# in a previous step. This test run will use this PR's Zarf to create a K3s cluster.
run: |
sudo env "PATH=$PATH" CI=true APPLIANCE_MODE=true APPLIANCE_MODE_KEEP=true make test-e2e ARCH=amd64
sudo env "PATH=$PATH" CI=true APPLIANCE_MODE=true APPLIANCE_MODE_KEEP=true make test-e2e-with-cluster ARCH=amd64
- name: "Describe nodes, pods and deployments"
# NOTE: We describe nodes, pods and deployments here to help understand failures
Expand Down
14 changes: 11 additions & 3 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ BUILD_ARGS := -s -w -X 'github.com/defenseunicorns/zarf/src/config.CLIVersion=$(

.PHONY: help
help: ## Display this help information
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) \
| sort | awk 'BEGIN {FS = ":.*?## "}; \
{printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'

Expand Down Expand Up @@ -142,9 +142,17 @@ build-injector-linux: ## Build the Zarf injector for AMD64 and ARM64

## NOTE: Requires an existing cluster or the env var APPLIANCE_MODE=true
.PHONY: test-e2e
test-e2e: build-examples ## Run all of the core Zarf CLI E2E tests (builds any deps that aren't present)
test-e2e: test-e2e-without-cluster test-e2e-with-cluster ## Run all of the core Zarf CLI E2E tests (builds any deps that aren't present)

.PHONY: test-e2e-with-cluster
test-e2e-with-cluster: build-examples ## Run all of the core Zarf CLI E2E tests that DO require a cluster (builds any deps that aren't present)
@test -s ./build/zarf-init-$(ARCH)-$(CLI_VERSION).tar.zst || $(MAKE) init-package
cd src/test/e2e && go test ./main_test.go ./[2-9]*.go -failfast -v -timeout 35m

.PHONY: test-e2e-without-cluster
test-e2e-without-cluster: build-examples ## Run all of the core Zarf CLI E2E tests that DO NOT require a cluster (builds any deps that aren't present)
@test -s ./build/zarf-init-$(ARCH)-$(CLI_VERSION).tar.zst || $(MAKE) init-package
cd src/test/e2e && go test -failfast -v -timeout 35m
cd src/test/e2e && go test ./main_test.go ./[01]* -failfast -v -timeout 35m

## NOTE: Requires an existing cluster
.PHONY: test-external
Expand Down
2 changes: 1 addition & 1 deletion src/test/external/ext_in_cluster_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ func (suite *ExtInClusterTestSuite) SetupSuite() {
suite.Assertions = require.New(suite.T())

// Install a gitea chart to the k8s cluster to act as the 'remote' git server
giteaChartURL := "https://dl.gitea.io/charts/gitea-5.0.8.tgz"
giteaChartURL := "https://dl.gitea.io/charts/gitea-8.3.0.tgz"
helmInstallArgs := []string{"install", "gitea", giteaChartURL, "-f", "gitea-values.yaml", "-n=git-server", "--create-namespace"}
err := exec.CmdWithPrint("helm", helmInstallArgs...)
suite.NoError(err, "unable to install gitea chart")
Expand Down
7 changes: 4 additions & 3 deletions src/test/external/ext_out_cluster_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ const (
giteaIP = "172.31.0.99"
giteaHost = "gitea.localhost"
registryHost = "registry.localhost"
clusterName = "zarf-external-test"
)

var outClusterCredentialArgs = []string{
Expand All @@ -42,7 +43,7 @@ func (suite *ExtOutClusterTestSuite) SetupSuite() {
suite.Assertions = require.New(suite.T())

// Teardown any leftovers from previous tests
_ = exec.CmdWithPrint("k3d", "cluster", "delete")
_ = exec.CmdWithPrint("k3d", "cluster", "delete", clusterName)
_ = exec.CmdWithPrint("k3d", "registry", "delete", registryHost)
_ = exec.CmdWithPrint("docker", "network", "remove", network)

Expand All @@ -55,7 +56,7 @@ func (suite *ExtOutClusterTestSuite) SetupSuite() {
suite.NoError(err, "unable to create the k3d registry")

// Create a k3d cluster with the proper networking and aliases
err = exec.CmdWithPrint("k3d", "cluster", "create", "--registry-use", "k3d-"+registryHost+":5000", "--host-alias", giteaIP+":"+giteaHost, "--network", network)
err = exec.CmdWithPrint("k3d", "cluster", "create", clusterName, "--registry-use", "k3d-"+registryHost+":5000", "--host-alias", giteaIP+":"+giteaHost, "--network", network)
suite.NoError(err, "unable to create the k3d cluster")

// Install a gitea server via docker compose to act as the 'remote' git server
Expand All @@ -75,7 +76,7 @@ func (suite *ExtOutClusterTestSuite) SetupSuite() {

func (suite *ExtOutClusterTestSuite) TearDownSuite() {
// Tear down all of that stuff we made for local runs
err := exec.CmdWithPrint("k3d", "cluster", "delete")
err := exec.CmdWithPrint("k3d", "cluster", "delete", clusterName)
suite.NoError(err, "unable to teardown cluster")

err = exec.CmdWithPrint("docker", "compose", "down")
Expand Down

0 comments on commit 83cf4cd

Please sign in to comment.