# unified ansible-content-actions
Filed as https://issues.redhat.com/browse/AAP-25643
## Goals
- Make it as easy as possible to test collections using GHA
- Reduce GHA runners usage (cost & speed)
- Allow users to customize the test jobs running, like disabling some jobs types
- Use a **single** workflows for running all tests: lint, sanity, unit, integration, publish
- Ease update to new versions (via dependabot)
- Versioning of this actions should depend on `ansible-dev-tools` release, so users would not be surprised by internal changes made inside our tools, or receive too many updates due to the number of components we have
- Allow use of bleading edge releases (opt-in)
- Alow us to add a new job type without having to update the definition of the workflow for the users (hands-off for content creators)
- Allow us to have jobs running on different architectures (might be needed for validation collection requirements availability)
- Allow adding dependencies between matrix jobs
## Stackeholders
- DevTools team: @ssbarnea @ganesh
- Networking team: @nilashsch
- Community team: @gundalow
## Current situation
- [ansible/team-devtools](https://github.com/ansible/ansible-content-actions/tree/main/.github/actions) contains a series of workflows
- [ansible/ansible-lint](https://github.com/ansible/ansible-lint) publishes its on GHA action named [run-ansible-lint](https://github.com/marketplace/actions/run-ansible-lint)
- [ansible/ansible-content-actions](https://github.com/ansible/ansible-content-actions/blob/main/.github/workflows/) seems like to be close to what we want but needs refactorings to address our goals. One notable downside is that requires adding multiple workflows, so it would require maintenance when we want to add a new type of job
## Design (TBD)
```yaml
jobs:
pre:
runs-on: ubuntu-22.04
outputs:
matrix: ${{ steps.generate_matrix.outputs.matrix }}
steps:
- name: Determine matrix
id: generate_matrix
uses: coactions/dynamic-matrix@v1
with:
other_names: |
lint
pkg
test:
needs: pre
```