Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | 4x 4x 4x 4x 4x 4x 4x 4x 12x 4x 4x 4x 4x | /*! Copyright [Amazon.com](http://amazon.com/), Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0 */
import * as fs from "fs";
import * as path from "path";
import { SampleDir } from "projen";
import { AwsCdkPythonApp, AwsCdkPythonAppOptions } from "projen/lib/awscdk";
import { Pytest } from "projen/lib/python";
/**
* Configuration options for the PDKPipelinePyProject.
*/
export interface PDKPipelinePyProjectOptions extends AwsCdkPythonAppOptions {}
/**
* Synthesizes a Python Project with a CI/CD pipeline.
*
* @pjid pdk-pipeline-py
*/
export class PDKPipelinePyProject extends AwsCdkPythonApp {
constructor(options: PDKPipelinePyProjectOptions) {
super({
github: false,
sample: false,
pytest: false,
...options,
appEntrypoint:
options.appEntrypoint || `${options.moduleName}/pipeline.py`,
});
["aws_prototyping_sdk", "cdk-nag", "pyhumps"].forEach((dep) =>
this.addDependency(dep)
);
this.addDevDependency("pytest");
new SampleDir(this, this.moduleName, {
sourceDir: path.join(__dirname, "..", "samples", "python", "infra"),
});
this.pytest = new Pytest(this, options.pytestOptions);
new SampleDir(this, this.testdir, {
files: {
"__init__.py": "",
"test_pipeline.py": fs
.readFileSync(
path.join(
__dirname,
"..",
"samples",
"python",
"tests",
"test_pipeline.py"
)
)
.toString()
.replace("infra.", `${this.moduleName}.`),
},
});
}
}
|