Skip to content

Feature | Migrate CircleCI Terratest Pipeline to GitHub Actions #39

@exequielrafaela

Description

@exequielrafaela

Describe the Feature:

  • Migrate our current CircleCI Terratest pipeline declared in this file to a GitHub Actions based pipeline.
  • This migration aims to leverage well-maintained GitHub actions for terratest and address issues related to outdated makefiles and docker images in our current CircleCI setup.

Expected Behavior:

A fully functional GitHub Actions based pipeline that runs terratest tests within the repo, replacing the current CircleCI pipeline.

Use Case:

The current CircleCI terratest pipeline has encountered issues, and some components are outdated like makefiles:

And docker images:

Migrating to GitHub Actions, which offers well-maintained actions for terratest, can provide a more robust and up-to-date testing environment.

Describe Ideal Solution:

  1. Integrate the cloudposse/github-action-terratest action into our repository.
  2. Replace all CircleCI specific configurations with GitHub Actions configurations.
  3. Ensure all tests run successfully in the new GitHub Actions pipeline.
  4. Update documentation to reflect the change from CircleCI to GitHub Actions.

Alternatives Considered:

  1. Fixing the current CircleCI terratest pipeline.
  2. Exploring other GitHub Actions for terratest or other CI/CD platforms.

Additional Context:

  • The cloudposse/github-action-terratest action was suggested as a potential solution. It's relatively new but could be a good alternative to our current CircleCI setup.
  • There's a need to evaluate this action thoroughly before full integration.
  • If complications arise in fixing our current CircleCI terratest pipeline, this migration could be a viable alternative.

Ref Material

Valuable Considerations from Articles:

  • Terratest should not just validate resource creation but should provide deeper insights into the functionality of our Terraform code.
  • It's essential to check the interconnectivity between separate resources within our module.
  • Custom conditional logic in Terraform modules can simplify module usage and ensure consistent behavior.
  • Terratest is vital for testing this custom logic, especially when the module undergoes updates or changes.
  • Efficient testing workflows are crucial. Building tests progressively can reduce the runtime of our Terratest stage.
  • Integrating Terratest into our testing pipeline ensures consistent scrutiny of our modules' functionality.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions