Skip to main content

@awlsring/cdktf-github-actions

Project description

cdktf-github-actions

This is a library to help define GitHub Actions workflows using CDKTF. This package vends constructs for defining a workflow that will be synthesized to a workflow yaml file in your repos .github/workflows directory.

Development

This project is in early development. The constructs are likely to change as the needs of the project evolve.

A few items I'm currently working towards:

  • More github resource synthesis
  • Higher test coverage
  • More indepth documentation

Usage

Example

import { Construct } from 'constructs';
import { App, TerraformStack } from 'cdktf';
import { Workflow, Job } from 'cdktf-github-actions';

const app = new App();

class MyWorkflowStack executes TerraformStack {
  constructor(scope: Construct, name: string) {
    super(scope, name);

    let echoJob = new Job(this, 'build-job', {
      steps: [
        {
          name: 'echo',
          run: 'echo "Hello World"',
        },
      ],
    });

    const wf = new Workflow(this, 'workflow', {
      repoName: 'my-repo',
      jobs: [echoJob],
    });
  }
}

const stack = new MyWorkflowStack(app, 'test');
app.synth();

The constructs support the ability to define github resources and create them using the github terrafrom provider. The following example shows how to create a create a workflow with secrets that will be stored in the repository.

import { Construct } from 'constructs';
import { App, TerraformStack } from 'cdktf';
import { Workflow, Job } from 'cdktf-github-actions';

const app = new App();

class MyWorkflowStack executes TerraformStack {
  constructor(scope: Construct, name: string) {
    super(scope, name);

    let echoJob = new Job(this, 'build-job', {
      steps: [
        {
          name: 'echo',
          run: 'echo "Hello World"',
          withSecrets: [
            {
              referencedName: 'token',
              secretName: 'MY_SECRET',
              secretValue: '123',
            },
          ],
        },
      ],
    });

    const wf = new Workflow(this, 'workflow', {
      repoName: 'my-repo',
      jobs: [echoJob],
    });
  }
}

const stack = new MyWorkflowStack(app, 'test');
app.synth();

The example above will create a secret with the name MY_SECRET and the value 123 in the repository. The secret will be referenced in the workflow using the name token.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cdktf-github-actions-0.0.86.tar.gz (223.3 kB view details)

Uploaded Source

Built Distribution

cdktf_github_actions-0.0.86-py3-none-any.whl (221.8 kB view details)

Uploaded Python 3

File details

Details for the file cdktf-github-actions-0.0.86.tar.gz.

File metadata

  • Download URL: cdktf-github-actions-0.0.86.tar.gz
  • Upload date:
  • Size: 223.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for cdktf-github-actions-0.0.86.tar.gz
Algorithm Hash digest
SHA256 4a9f6404f83d629a44fe0c9207b4a7c756afb8b943659a1cd4aafafafc80b600
MD5 5be317fe167c8d768ac9561c078859f5
BLAKE2b-256 a977865db95110605e072215687a44bb082d4550f6e83b1c3062b24a3e05800f

See more details on using hashes here.

File details

Details for the file cdktf_github_actions-0.0.86-py3-none-any.whl.

File metadata

File hashes

Hashes for cdktf_github_actions-0.0.86-py3-none-any.whl
Algorithm Hash digest
SHA256 b7c132d710e444a9a03b5f61e2e492a3763c38a63af266847b4381a5aa7fbe36
MD5 0ed767c48a0c516a9487b3364c95f119
BLAKE2b-256 d025549afc1b11690db3cfc12f58059dff1ffa5a247dce1181849e0129d56486

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page