🚧 GitHub Actions CDK
github-actions-cdk is a TypeScript library that simplifies the creation and management of GitHub Actions workflows using Constructs. With this library, developers can define workflows in a structured and type-safe manner, making it easier to automate CI/CD pipelines on GitHub. It also includes Python bindings for developers who prefer working in Python.
Features
- Type-Safe Workflows: Leverage TypeScript's strong typing to define your GitHub Actions workflows and ensure correctness.
- Python Bindings: Access the same powerful constructs and features in Python, allowing seamless integration for Python developers.
- Modular Design: Easily create and manage jobs, triggers, and options for your workflows.
Installation
To get started with github-actions-cdk, install the package using npm or yarn for TypeScript, or pip for Python:
TypeScript
npm install github-actions-cdk
or
yarn add github-actions-cdk
Python
pip install github-actions-cdk
Getting Started
Basic Usage (TypeScript)
Here's a simple example of how to create a GitHub Actions workflow using github-actions-cdk in TypeScript::
import { PermissionLevel, Project, actions } from 'github-actions-cdk';
const project = new Project({
//additionalChecks: true,
});
const workflow = project.addWorkflow("build", {
name: "Build",
triggers: {
push: { branches: ["main"] },
workflowDispatch: {},
},
permissions: {
contents: PermissionLevel.READ,
},
});
const job = workflow.addJob("build", {
env: {
CI: "true",
},
});
new actions.CheckoutV4(job, "checkout", {
name: "Checkout Code",
});
const setupNode = new actions.SetupNodeV4(job, "setup-node", {
name: "Set up Node.js",
nodeVersion: "20.x",
});
job.addOutput("node-version", setupNode.outputs.nodeVersion);
project.synth();
Basic Usage (Python)
Here's how to create a GitHub Actions workflow using github-actions-cdk in Python:
from github_actions_cdk import Project, PermissionLevel
from github_actions_cdk.actions import CheckoutV4, SetupNodeV4
project = Project(
#additional_checks=True,
)
workflow = project.add_workflow(
id="build",
name="Build",
triggers={
"push": {
"branches": ["main"],
}
},
permissions={
"contents": PermissionLevel.READ,
}
)
job = workflow.add_job(
id="build",
env={
"CI": "true",
},
)
CheckoutV4(
scope=job,
id="checkout",
name="Checkout Code",
)
setup_node = SetupNodeV4(
scope=job,
id="setup-node",
name="Set up Node.js",
node_version="14.x",
)
job.add_output("node-version", setup_node.outputs.node_version)
project.synth()
Contributing
Contributions are welcome! Please read the CONTRIBUTING.md for details on how to get involved.
License
This project is licensed under the MIT License. See the LICENSE file for more information.
Metadata
Release files for github-actions-cdk 0.0.23
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| github_actions_cdk-0.0.23.tar.gz | 260.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| github_actions_cdk-0.0.23-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 519.5 kB
Release files / github_actions_cdk-0.0.23.tar.gz
| Download URL | github_actions_cdk-0.0.23.tar.gz |
|---|---|
| Size | 260.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
10fed0cdead0c5efcd732e2427508facfe7a032c4d865ad25a0bfe87fd93f3e3
|
|
BLAKE2b-256 checksum How to use checksums |
3f7235dd9fa3e34c833b600a578865a760be9013cfe140e87a8473524602218e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.2
|
Release files / github_actions_cdk-0.0.23-py3-none-any.whl
| Download URL | github_actions_cdk-0.0.23-py3-none-any.whl |
|---|---|
| Size | 259.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
daeb314cdc32b86ac8a9f89146b1b6c5862b9a7e02e5ade6155c72d1de1448e6
|
|
BLAKE2b-256 checksum How to use checksums |
8d7a4d87f20da4ea27ee7a4f5217285177f89d3b4cb40c98ce40f65610e26f75
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.2
|