createConformancePipelime()

in hybrid-nodes-cdk/lib/nodeadm-stack.ts [423:482]


  createConformancePipelime() {
    if (this.nodeadmBuildOutput === undefined) {
      throw new Error('`nodeadmBuildOutput` is not defined');
    }
    if (this.nodeadmBuildAction === undefined) {
      throw new Error('`nodeadmBuildAction` is not defined');
    }
    if (this.ecrCacheAction === undefined) {
      throw new Error('`ecrCacheAction` is not defined');
    }
    if (this.cleanupAction === undefined) {
      throw new Error('`cleanupAction` is not defined');
    }
    if (this.githubSourceAction === undefined) {
      throw new Error('`githubSourceAction` is not defined');
    }
    if (this.integrationTestProject === undefined) {
      throw new Error('`integrationTestProject` is not defined');
    }
    if (this.nodeadmVersionVariable === undefined) {
      throw new Error('`nodeadmVersionVariable` is not defined');
    }

    const conformanceActions: Array<codepipeline_actions.CodeBuildAction> = [];
    for (const kubeVersion of constants.kubernetesVersions) {
      const cni = 'cilium';
      let additionalEnvironmentVariables = {
        E2E_SUITE: {
          value: 'conformance.test',
        },
        E2E_FILTER: {
          value: 'conformance',
        },
      };
      if (constants.betaKubeVersions.includes(kubeVersion)) {
        additionalEnvironmentVariables = { ...additionalEnvironmentVariables, ...this.betaEnvironmentVariables() };
      }
      const e2eTestsAction = createTestAction(
        kubeVersion,
        cni,
        this.nodeadmBuildOutput,
        this.integrationTestProject,
        additionalEnvironmentVariables,
      );
      conformanceActions.push(e2eTestsAction);
    }

    const conformancePipeline = createNodeadmE2EPipeline(
      this,
      'conformance',
      this.githubSourceAction,
      this.nodeadmBuildAction,
      this.cleanupAction,
      this.ecrCacheAction,
      conformanceActions,
      [this.nodeadmVersionVariable],
    );

    this.addStandardLifecycleRules(conformancePipeline.artifactBucket as s3.Bucket);
  }