Compare commits
8
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
77f91cf066 | ||
|
|
acbfe967e0 | ||
|
|
8096fe42d0 | ||
|
|
4f073779b7 | ||
|
|
aecc1a37c5 | ||
|
|
8433a15e95 | ||
|
|
6393476fe1 | ||
|
|
1bad75c367 |
@@ -23,12 +23,13 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- name: Check out the repository
|
- name: Check out the repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2
|
||||||
|
|
||||||
- name: Fetch the shared script
|
- name: Fetch the shared script
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
repository: TirSystem/github-action
|
repository: TirSystem/github-action
|
||||||
ref: v1
|
ref: v1
|
||||||
|
|||||||
@@ -16,9 +16,10 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 5
|
||||||
steps:
|
steps:
|
||||||
- name: Fetch the shared script
|
- name: Fetch the shared script
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
repository: TirSystem/github-action
|
repository: TirSystem/github-action
|
||||||
ref: v1
|
ref: v1
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 15
|
||||||
env:
|
env:
|
||||||
WORKING_DIRECTORY: ${{ inputs.working-directory }}
|
WORKING_DIRECTORY: ${{ inputs.working-directory }}
|
||||||
STD: ${{ inputs.std }}
|
STD: ${{ inputs.std }}
|
||||||
@@ -52,10 +53,10 @@ jobs:
|
|||||||
QC_VENV: /tmp/quality-tools
|
QC_VENV: /tmp/quality-tools
|
||||||
steps:
|
steps:
|
||||||
- name: Check out the repository
|
- name: Check out the repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2
|
||||||
|
|
||||||
- name: Fetch the shared script
|
- name: Fetch the shared script
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
repository: TirSystem/github-action
|
repository: TirSystem/github-action
|
||||||
ref: ${{ inputs.tools-ref }}
|
ref: ${{ inputs.tools-ref }}
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 15
|
||||||
env:
|
env:
|
||||||
WORKING_DIRECTORY: ${{ inputs.working-directory }}
|
WORKING_DIRECTORY: ${{ inputs.working-directory }}
|
||||||
PROJECT: ${{ inputs.project }}
|
PROJECT: ${{ inputs.project }}
|
||||||
@@ -41,10 +42,10 @@ jobs:
|
|||||||
DOTNET_ROOT: /tmp/dotnet
|
DOTNET_ROOT: /tmp/dotnet
|
||||||
steps:
|
steps:
|
||||||
- name: Check out the repository
|
- name: Check out the repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2
|
||||||
|
|
||||||
- name: Fetch the shared script
|
- name: Fetch the shared script
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
repository: TirSystem/github-action
|
repository: TirSystem/github-action
|
||||||
ref: ${{ inputs.tools-ref }}
|
ref: ${{ inputs.tools-ref }}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 15
|
||||||
env:
|
env:
|
||||||
LANGUAGES: ${{ inputs.languages }}
|
LANGUAGES: ${{ inputs.languages }}
|
||||||
WORKING_DIRECTORY: ${{ inputs.working-directory }}
|
WORKING_DIRECTORY: ${{ inputs.working-directory }}
|
||||||
@@ -55,10 +56,10 @@ jobs:
|
|||||||
QC_VENV: /tmp/quality-tools
|
QC_VENV: /tmp/quality-tools
|
||||||
steps:
|
steps:
|
||||||
- name: Check out the repository
|
- name: Check out the repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2
|
||||||
|
|
||||||
- name: Fetch the shared script
|
- name: Fetch the shared script
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
repository: TirSystem/github-action
|
repository: TirSystem/github-action
|
||||||
ref: ${{ inputs.tools-ref }}
|
ref: ${{ inputs.tools-ref }}
|
||||||
|
|||||||
@@ -26,9 +26,10 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: write
|
contents: write
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 15
|
||||||
steps:
|
steps:
|
||||||
- name: Check out the repository
|
- name: Check out the repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2
|
||||||
|
|
||||||
- name: Check and publish the release
|
- name: Check and publish the release
|
||||||
env:
|
env:
|
||||||
|
|||||||
@@ -45,9 +45,10 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 15
|
||||||
steps:
|
steps:
|
||||||
- name: Check out the project
|
- name: Check out the project
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
token: ${{ secrets.TOKEN_FOR_GITEA }}
|
token: ${{ secrets.TOKEN_FOR_GITEA }}
|
||||||
|
|
||||||
@@ -67,23 +68,11 @@ jobs:
|
|||||||
git submodule update --init --recursive --depth=1
|
git submodule update --init --recursive --depth=1
|
||||||
|
|
||||||
- name: Make sure curl and jq are available
|
- name: Make sure curl and jq are available
|
||||||
run: |
|
run: bash framework/scripts/ci-publish-milestones.sh ensure-tools
|
||||||
set -euo pipefail
|
|
||||||
if command -v curl >/dev/null && command -v jq >/dev/null; then exit 0; fi
|
|
||||||
sudo_cmd=""
|
|
||||||
if [ "$(id -u)" -ne 0 ]; then sudo_cmd="sudo"; fi
|
|
||||||
$sudo_cmd apt-get update -qq
|
|
||||||
$sudo_cmd apt-get install -y -qq curl jq
|
|
||||||
|
|
||||||
- name: Publish accepted milestones
|
- name: Publish accepted milestones
|
||||||
env:
|
env:
|
||||||
GITEA_TOKEN: ${{ secrets.TOKEN_FOR_GITEA }}
|
GITEA_TOKEN: ${{ secrets.TOKEN_FOR_GITEA }}
|
||||||
# Empty on a push (a real run); "true" or "false" on a manual run.
|
# Empty on a push (a real run); "true" or "false" on a manual run.
|
||||||
DRY_RUN: ${{ inputs.dry_run }}
|
DRY_RUN: ${{ inputs.dry_run }}
|
||||||
run: |
|
run: bash framework/scripts/ci-publish-milestones.sh publish
|
||||||
set -euo pipefail
|
|
||||||
if [ "$DRY_RUN" = "true" ]; then
|
|
||||||
bash framework/scripts/sync-project.sh --accepted-only
|
|
||||||
else
|
|
||||||
bash framework/scripts/sync-project.sh --accepted-only --apply
|
|
||||||
fi
|
|
||||||
|
|||||||
@@ -11,9 +11,10 @@ jobs:
|
|||||||
permissions:
|
permissions:
|
||||||
contents: read
|
contents: read
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 10
|
||||||
steps:
|
steps:
|
||||||
- name: Check out the repository
|
- name: Check out the repository
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4.2.2
|
||||||
|
|
||||||
- name: Create a virtual environment and install test dependencies
|
- name: Create a virtual environment and install test dependencies
|
||||||
run: |
|
run: |
|
||||||
|
|||||||
@@ -15,6 +15,49 @@ framework.
|
|||||||
the working tree first; edit, summarise and stop. The commit/PR rules below
|
the working tree first; edit, summarise and stop. The commit/PR rules below
|
||||||
apply once a commit has been asked for.
|
apply once a commit has been asked for.
|
||||||
|
|
||||||
|
## Related repositories
|
||||||
|
|
||||||
|
This project is one of four repositories that change together. Each has one
|
||||||
|
job; a change goes to the repository that owns it, not to the one that happens
|
||||||
|
to be open.
|
||||||
|
|
||||||
|
| Repository | Owns | Consumed by | Pinned or released as |
|
||||||
|
| --- | --- | --- | --- |
|
||||||
|
| `TirSystem/SQA-QC-Checklists` | the QC checklists (`qc/artifacts/`, `qc/code/`) | `sqa-qc-framework` | a commit, pinned as the `qc/` submodule |
|
||||||
|
| `TirSystem/sqa-qc-framework` | the skills, process documents, catalog, templates (`templates/ci/`) and scripts | every project, as the `framework/` submodule | a release tag (`v0.5.2`, ...) |
|
||||||
|
| `TirSystem/github-action` | the shared workflows (`quality-checks`, `release`), the scoped workflows (`publish-wiki`, `sync-github-metadata`) and the scripts they call (`tools/`) | every repository of the organisation, by `uses:` and `ref:` | a release tag and a moving major tag (`v1`), made by its release workflow |
|
||||||
|
| `TirSystem/sqa-and-qc` | the SQA and AI project management: project artifacts, review records, the traceability matrix | itself | the pull request that merges it |
|
||||||
|
|
||||||
|
Where a thing lives:
|
||||||
|
|
||||||
|
- A QC checklist, a convention or a template is changed in its owner above and
|
||||||
|
reaches this project by moving the pin. The review record of a checklist is
|
||||||
|
written in the project that reviews it (`docs/sqa/reviews/`), not in the
|
||||||
|
checklist repository.
|
||||||
|
- A workflow that other repositories call is changed in `github-action` and
|
||||||
|
released there. A workflow a project copies from `templates/ci/` is changed
|
||||||
|
in the framework; the project updates its copy after the pin moves.
|
||||||
|
- A script a workflow needs is a file (`tools/` of `github-action`, or
|
||||||
|
`scripts/` of the framework for the templates), never a long `run:` block
|
||||||
|
(`QC-WF-001` criterion 20).
|
||||||
|
- The `framework/` pin here is independent of the one in `sqa-and-qc`; the two
|
||||||
|
may differ, and neither is moved to follow the other without a reason in
|
||||||
|
the pull request.
|
||||||
|
|
||||||
|
A change that spans repositories:
|
||||||
|
|
||||||
|
1. One pull request per repository, in dependency order: checklists, then
|
||||||
|
framework, then `github-action` and the projects. A pull request names the
|
||||||
|
ones it depends on in its description.
|
||||||
|
2. A downstream repository moves a pin only to a merged commit or tag of the
|
||||||
|
upstream, never to an unmerged branch.
|
||||||
|
3. Nothing is released or tagged until its dependencies are merged; a release
|
||||||
|
is a separate, deliberate step (the release workflow defaults to a dry run).
|
||||||
|
4. A related repository is added to the session as a working directory only
|
||||||
|
when the task needs it. In autonomous mode work in a related repository is
|
||||||
|
inside the accepted plan only if the plan names it; otherwise the run stops
|
||||||
|
and reports.
|
||||||
|
|
||||||
## Workflow order
|
## Workflow order
|
||||||
|
|
||||||
Business Case, Stakeholder Analysis, Project Plan, milestones, tasks synced as
|
Business Case, Stakeholder Analysis, Project Plan, milestones, tasks synced as
|
||||||
|
|||||||
@@ -32,6 +32,17 @@ Each release lists its changes in these groups, in this order:
|
|||||||
or later (input `dotnet-sdk-version`, default `10.0.401`), with the inputs
|
or later (input `dotnet-sdk-version`, default `10.0.401`), with the inputs
|
||||||
`working-directory`, `project` and `tools-ref`.
|
`working-directory`, `project` and `tools-ref`.
|
||||||
|
|
||||||
|
### Changed
|
||||||
|
|
||||||
|
- Every job has a `timeout-minutes` (5 to 15), so a hung step no longer holds a
|
||||||
|
runner for the host's default limit.
|
||||||
|
- `actions/checkout` is referenced by the exact tag `v4.2.2` instead of the
|
||||||
|
moving tag `v4`. No change for callers.
|
||||||
|
- The framework pin moves from `v0.5.2` to `v0.6.0`, and the two long `run:`
|
||||||
|
blocks of this repository's own `sync-milestones.yml` call
|
||||||
|
`framework/scripts/ci-publish-milestones.sh`. No change for callers of the
|
||||||
|
shared workflows.
|
||||||
|
|
||||||
## [1.1.0] - 2026-10-11
|
## [1.1.0] - 2026-10-11
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|||||||
+1
-1
Submodule framework updated: 4fd69c4970...2b4a058f26
Reference in New Issue
Block a user