Document the SDL-specific custom ci commands

This commit is contained in:
Anonymous Maarten 2024-08-31 01:29:23 +02:00 committed by Anonymous Maarten
parent ea0ab2647a
commit c57cf716af
3 changed files with 24 additions and 4 deletions

View File

@ -158,6 +158,7 @@ class SharedLibType(Enum):
@dataclasses.dataclass(slots=True)
class JobDetails:
name: str
key: str
os: str
platform: str
artifact: str
@ -221,6 +222,7 @@ class JobDetails:
def to_workflow(self, enable_artifacts: bool) -> dict[str, str|bool]:
data = {
"name": self.name,
"key": self.key,
"os": self.os,
"container": self.container if self.container else "",
"platform": self.platform,
@ -293,9 +295,10 @@ def my_shlex_join(s):
return " ".join(escape(s))
def spec_to_job(spec: JobSpec, trackmem_symbol_names: bool) -> JobDetails:
def spec_to_job(spec: JobSpec, key: str, trackmem_symbol_names: bool) -> JobDetails:
job = JobDetails(
name=spec.name,
key=key,
os=spec.os.value,
artifact=spec.artifact or "",
container=spec.container or "",
@ -723,9 +726,9 @@ def spec_to_job(spec: JobSpec, trackmem_symbol_names: bool) -> JobDetails:
return job
def spec_to_platform(spec: JobSpec, enable_artifacts: bool, trackmem_symbol_names: bool) -> dict[str, str|bool]:
def spec_to_platform(spec: JobSpec, key: str, enable_artifacts: bool, trackmem_symbol_names: bool) -> dict[str, str|bool]:
logger.info("spec=%r", spec)
job = spec_to_job(spec, trackmem_symbol_names=trackmem_symbol_names)
job = spec_to_job(spec, key=key, trackmem_symbol_names=trackmem_symbol_names)
logger.info("job=%r", job)
platform = job.to_workflow(enable_artifacts=enable_artifacts)
logger.info("platform=%r", platform)
@ -773,7 +776,7 @@ def main():
all_level_platforms = {}
all_platforms = {k: spec_to_platform(spec, enable_artifacts=args.enable_artifacts, trackmem_symbol_names=args.trackmem_symbol_names) for k, spec in JOB_SPECS.items()}
all_platforms = {key: spec_to_platform(spec, key=key, enable_artifacts=args.enable_artifacts, trackmem_symbol_names=args.trackmem_symbol_names) for key, spec in JOB_SPECS.items()}
for level_i, level_keys in enumerate(all_level_keys, 1):
level_key = f"level{level_i}"

View File

@ -34,6 +34,13 @@ jobs:
${{ (!matrix.platform.msys2-no-perl && format('{0}-perl', matrix.platform.msys2-env)) || '' }}
${{ matrix.platform.msys2-env }}-pkg-config
${{ matrix.platform.msys2-env }}-clang-tools-extra
- name: 'About this job'
run: |
echo "key=${{ matrix.platform.key }}"
echo "name=${{ matrix.platform.name }}"
echo "os=${{ matrix.platform.os }}"
echo ""
echo "Add [sdl-ci-filter ${{ matrix.platform.key }}] to your commit message to reduce the number of jobs."
- uses: actions/checkout@v4
- name: 'Set up ninja'
if: ${{ matrix.platform.setup-ninja }}

View File

@ -12,6 +12,7 @@ We appreciate your interest in contributing to SDL, this document will describe
- [Following the style guide](#following-the-style-guide)
- [Running the tests](#running-the-tests)
- [Opening a pull request](#opening-a-pull-request)
- [Continuous integration](#continuous-integration)
- [Contributing to the documentation](#contributing-to-the-documentation)
- [Editing a function documentation](#editing-a-function-documentation)
- [Editing the wiki](#editing-the-wiki)
@ -86,6 +87,15 @@ Tests allow you to verify if your changes did not break any behaviour, here are
- Fill out the pull request template.
- If any changes are requested, you can add new commits to your fork and they will be automatically added to the pull request.
### Continuous integration
For each push and/or pull request, GitHub Actions will try to build SDL and the test suite on most supported platforms.
Its behaviour can be influenced slightly by including SDL-specific tags in your commit message:
- `[sdl-ci-filter GLOB]` limits the platforms for which to run ci.
- `[sdl-ci-artifacts]` forces SDL artifacts, which can then be downloaded from the summary page.
- `[sdl-ci-trackmem-symbol-names]` makes sure the final report generated by `--trackmem` contains symbol names.
## Contributing to the documentation
### Editing a function documentation