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

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cdktf_github_actions-0.0.59-py3-none-any.whl (224.6 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for cdktf-github-actions-0.0.59.tar.gz
Algorithm Hash digest
SHA256 6b4e31363797bd9d3499f13e7c9e22ce9a55f5ef551340cdbdc0d9ef6a362e9d
MD5 4985db3e4f827b1c27f3b0ceaca07439
BLAKE2b-256 9d71ae08cfc9989c88a7472a81cf1029e927272019c69c7f8a4502f10446414f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for cdktf_github_actions-0.0.59-py3-none-any.whl
Algorithm Hash digest
SHA256 da911909c071aafd97beea4f44cffcd7a1b1fc69680af7684ec17849e8c2ca9d
MD5 63a25751b5530f5d2316f97ebdc97950
BLAKE2b-256 dd2aa6dd53601cbfac310b1d62841a379f70ad70155b8212e518d9f5d25db089

See more details on using hashes here.

Supported by

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