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.303.tar.gz (224.6 kB view details)

Uploaded Source

Built Distribution

cdktf_github_actions-0.0.303-py3-none-any.whl (223.1 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for cdktf-github-actions-0.0.303.tar.gz
Algorithm Hash digest
SHA256 388f7f11428c1d04bde2dae9aeca6c4111e560fb54a418c83d2a0b40ef16b172
MD5 4ab6259e6dbcb05b45a9f3d8fc048a86
BLAKE2b-256 dffb083efd2448e3b084a0df0b54c4cb8c282d4dec1c32019f8e2c59fd030981

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cdktf_github_actions-0.0.303-py3-none-any.whl
Algorithm Hash digest
SHA256 c575474c634fe542e8767c099e88b1a78a81e806f44f5d2d8a8d5843dc2de607
MD5 df396e98963369dd4d7901910959df30
BLAKE2b-256 1e2cbdd680d8fb8ef994e2f5a7d500a4aa4bca1d150c6c4591e15bde72a8deca

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