|
| 1 | +# Remove Redundant Compose Step From Container Workflow |
| 2 | + |
| 3 | +## Overview |
| 4 | + |
| 5 | +The `container` workflow still includes a `Compose` step that runs: |
| 6 | + |
| 7 | +- `docker compose -f compose.qbittorrent-e2e.sqlite3.yaml build` |
| 8 | +- `docker compose -f compose.qbittorrent-e2e.mysql.yaml build` |
| 9 | +- `docker compose -f compose.qbittorrent-e2e.postgresql.yaml build` |
| 10 | + |
| 11 | +This step no longer provides unique verification value and adds significant CI time. |
| 12 | + |
| 13 | +- GitHub issue: [#1748](https://github.com/torrust/torrust-tracker/issues/1748) |
| 14 | +- Affected workflow: [`.github/workflows/container.yaml`](../../.github/workflows/container.yaml) |
| 15 | +- Related workflow: [`.github/workflows/testing.yaml`](../../.github/workflows/testing.yaml) |
| 16 | + |
| 17 | +## Background |
| 18 | + |
| 19 | +Historically, the `Compose` step in `container.yaml` was used as a lightweight check to ensure |
| 20 | +compose configuration remained buildable. |
| 21 | + |
| 22 | +The project now has dedicated compose runtime coverage in `testing.yaml` (`docker-e2e` job): |
| 23 | + |
| 24 | +- `e2e_tests_runner --tracker-image torrust-tracker:e2e-local --skip-build` |
| 25 | +- `qbittorrent_e2e_runner --tracker-image torrust-tracker:e2e-local --skip-build --db-driver sqlite3` |
| 26 | +- `qbittorrent_e2e_runner --tracker-image torrust-tracker:e2e-local --skip-build --db-driver mysql` |
| 27 | +- `qbittorrent_e2e_runner --tracker-image torrust-tracker:e2e-local --skip-build --db-driver postgresql` |
| 28 | + |
| 29 | +As a result, compose files are actively validated by tests that matter at runtime. |
| 30 | + |
| 31 | +## Problem |
| 32 | + |
| 33 | +The `Compose` step in `container.yaml` is redundant and expensive: |
| 34 | + |
| 35 | +- It performs only extra build invocations, not runtime verification. |
| 36 | +- It can trigger repeated image builds in the same job. |
| 37 | +- It increases CI duration in the `container` workflow substantially. |
| 38 | +- It makes Docker layer-cache behavior harder to reason about in workflow diagnostics. |
| 39 | + |
| 40 | +## Proposed Change |
| 41 | + |
| 42 | +Remove the `Compose` step from the `test` job in `.github/workflows/container.yaml`. |
| 43 | + |
| 44 | +Keep the existing `Build` + `Inspect` steps in `container.yaml` for image build integrity checks, |
| 45 | +while retaining compose runtime validation in `testing.yaml` (`docker-e2e`). |
| 46 | + |
| 47 | +## Goals |
| 48 | + |
| 49 | +- [ ] Remove the `Compose` step from `.github/workflows/container.yaml`. |
| 50 | +- [ ] Keep `container` workflow matrix build behavior unchanged (`debug` and `release`). |
| 51 | +- [ ] Keep compose runtime verification in `.github/workflows/testing.yaml`. |
| 52 | +- [ ] Confirm reduced CI duration for `container` workflow after merge. |
| 53 | + |
| 54 | +## Non-Goals |
| 55 | + |
| 56 | +- Changing compose files used by E2E tests. |
| 57 | +- Modifying test logic in `e2e_tests_runner` or `qbittorrent_e2e_runner`. |
| 58 | +- Altering publish jobs in `container.yaml`. |
0 commit comments