Implement a GitHub Actions CI/CD pipeline

Description

Construct and demonstrate a CI/CD pipeline with capabilities similar to the standardized Travis CI module pipeline, using GitHub actions.

The immediate priority is to provide the first half of a CI train to trigger the GLCI pipelines to run only the (OP-hosted) acceptance tests, in order to avoid the 400 min/month limit GitLab will impose on the free tier on October 1.

Requirements

  • Run validation (syntax/lint) and matrixed spec tests for PRs/updates

  • Deploy to releases to PuppetForge/RubyGems.org etc

Optional (Explore)

Acceptance Tests

  • Trigger a GitLab CI pipeline to run acceptance tests for PRs/updates from trusted users, following a successful spec matrix

  • Trigger acceptance tests for any PR, following a special trigger comment by a trusted user (after vetting the PR)

  • Run acceptance tests as externally-hosted actions (ala GitHub runners).

= For security reasons, only contributors with a trusted role in our GitHub organization are permitted to initiate acceptance tests. External contributors' PRs must first be vetted (by a trusted user) for potentially malicious/mischievous behaviour before running acceptance tests on the OP runner resources.

Other things

  • Provide Danger-like PR linting to codify our org's PR conventions

Acceptance Criteria

None

Labels

Epic Link

Story Points

8

Assignee

Chris Tessmer

Affects versions

Priority

Highest
Configure