CI turnaround time on PRs can take a long time to run (~20 minutes). Leveraging Nx affected, the process can be reduced to the least-required for tests/builds/checks (PR 1730 added in Nx affected in CI. Card bcgov/cas-reporting#232). e2e tests can take a lot of that time and we can try to minimize those on PRs as well. With ShipIt, we could register a webhook to trigger a GitHub workflow that runs all CI processes in full when pushing to Test.
Optional: We could write a workflow to run E2E against the test namespace (which is near-identical to prod) instead of a CI container. We could then set this as a pre-run task in ShipIt for prod deployment. A similar process might be worth it for dev->test.
Island.is uses a script to determine affected projects, based on targets (see this script). Those affected projects are then run on their relevant targets. See the PR workflow for the full process, ex. jobs.prepare:22-159 and jobs.build:354-384.
Similarly, we can use nx show projects --affected --type app and use the nx-app-build action Marcel created in a matrix.
Acceptance Criteria
[ ] PR CI workflows/checks minimized.
[ ] Deployment CI maximized, triggered by ShipIt.
[ ] ❔ Workflow to run e2e tests against working cluster rather than CI pods, with triggered runs from ShipIt
Describe the task
CI turnaround time on PRs can take a long time to run (~20 minutes). Leveraging Nx affected, the process can be reduced to the least-required for tests/builds/checks (PR 1730 added in Nx affected in CI. Card bcgov/cas-reporting#232). e2e tests can take a lot of that time and we can try to minimize those on PRs as well. With ShipIt, we could register a webhook to trigger a GitHub workflow that runs all CI processes in full when pushing to Test.
Optional: We could write a workflow to run E2E against the
test
namespace (which is near-identical toprod
) instead of a CI container. We could then set this as a pre-run task in ShipIt for prod deployment. A similar process might be worth it fordev
->test
.Additional info & prior art
jobs.prepare:22-159
andjobs.build:354-384
.nx show projects --affected --type app
and use thenx-app-build
action Marcel created in a matrix.Acceptance Criteria