name: E2E test description: "Run Constellation e2e test." inputs: workerNodesCount: description: "Number of worker nodes to spawn." required: true controlNodesCount: description: "Number of control-plane nodes to spawn." required: true cloudProvider: description: "Which cloud provider to use." required: true machineType: description: "VM machine type. Make sure it matches selected cloud provider!" required: false osImage: description: "OS image to run. The default value 'debug-latest' will select the latest available debug image." default: "debug-latest" required: true isDebugImage: description: "Is OS img a debug img?" default: "true" required: true kubernetesVersion: description: "Kubernetes version to create the cluster from." required: false gcp_service_account_json: description: "Service account with permissions to create Constellation on GCP." required: false gcpClusterServiceAccountKey: description: "Service account to use inside the created Constellation cluster on GCP." required: false azureClientSecret: description: "The client secret value of the used secret" required: false azureResourceGroup: description: "The resource group to use" required: false sonobuoyTestSuiteCmd: description: "Which tests should be run? Check README for guidance!" required: true runs: using: "composite" steps: - name: Determine build target id: determine-build-target shell: bash run: | echo "hostOS=$(go env GOOS)" >> $GITHUB_OUTPUT echo "hostArch=$(go env GOARCH)" >> $GITHUB_OUTPUT - name: Build CLI uses: ./.github/actions/build_cli with: targetOS: ${{ steps.determine-build-target.outputs.hostOS }} targetArch: ${{ steps.determine-build-target.outputs.hostArch }} # macOS runners don't have Docker preinstalled, so they cannot build the bootstrapper. # But we can use a Linux runner to build it and store/retrieve it from the action cache. - name: Download the bootstrapper from cache id: download-bootstrapper-cache if: inputs.isDebugImage == 'true' && runner.os == 'macOS' uses: actions/cache@9b0c1fce7a93df8e3bb8926b0d6e9d89e92f20a7 # tag=v3.0.11 with: key: bootstrapper-${{ github.sha }} path: "build/bootstrapper" - name: Build the bootstrapper id: build-bootstrapper uses: ./.github/actions/build_bootstrapper if: inputs.isDebugImage == 'true' && runner.os != 'macOS' - name: Build cdbg id: build-cdbg uses: ./.github/actions/build_cdbg if: inputs.isDebugImage == 'true' with: targetOS: ${{ steps.determine-build-target.outputs.hostOS }} targetArch: ${{ steps.determine-build-target.outputs.hostArch }} - name: Login to GCP uses: ./.github/actions/gcp_login with: gcp_service_account_json: ${{ inputs.gcp_service_account_json }} if: inputs.cloudProvider == 'gcp' - name: Create cluster uses: ./.github/actions/constellation_create with: cloudProvider: ${{ inputs.cloudProvider }} gcpClusterServiceAccountKey: ${{ inputs.gcpClusterServiceAccountKey }} workerNodesCount: ${{ inputs.workerNodesCount }} controlNodesCount: ${{ inputs.controlNodesCount }} machineType: ${{ inputs.machineType }} osImage: ${{ inputs.osImage }} isDebugImage: ${{ inputs.isDebugImage }} kubernetesVersion: ${{ inputs.kubernetesVersion }} azureClientSecret: ${{ inputs.azureClientSecret }} azureResourceGroup: ${{ inputs.azureResourceGroup }} - name: Run e2e tests uses: ./.github/actions/sonobuoy with: sonobuoyTestSuiteCmd: ${{ inputs.sonobuoyTestSuiteCmd }}