Skip to content

qualification: treat scheduler peak as a bounded contract #5

qualification: treat scheduler peak as a bounded contract

qualification: treat scheduler peak as a bounded contract #5

Workflow file for this run

name: qualification
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
permissions:
contents: read
concurrency:
group: qualification-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
linux-x86-64:
runs-on: ubuntu-24.04
timeout-minutes: 90
steps:
- uses: actions/checkout@v4
- name: Install bootstrap
run: |
sudo apt-get update
sudo apt-get install --no-install-recommends \
make binutils fp-compiler-3.2.2 python3 coreutils util-linux
test "$(fpc -iV)" = 3.2.2
- name: Build product toolchain
run: ./build compiler
- name: Run platform contracts
run: |
python3 qualification/build-driver/ptop_contract.py
python3 qualification/build-driver/version_contract.py
python3 qualification/build-driver/project_profile_gate.py
./qualification/build-driver/atomic_swap.sh
./qualification/pinned-unit/run.sh
./qualification/memory-manager/profile_contract.sh
./qualification/memory-manager/medium_arenas.sh
./qualification/suite/scripts/run_extra_corpus.sh
python3 qualification/suite/tests/test_runner_contracts.py
python3 qualification/suite/tests/test_issue_tracker_runner.py
python3 qualification/suite/tests/test_qualification_contracts.py
python3 qualification/suite/tests/test_devil_runner_contracts.py
- name: Run issue-tracker contract
run: |
python3 qualification/suite/scripts/run_issue_tracker_corpus.py \
--fpc .moonbot/toolchain/bin/fpc \
--fpc-config .moonbot/toolchain/etc/fpc.cfg \
--output .qualification/ci-linux-tracker --jobs 4 --enforce
- name: Run Linux language and integration gates
working-directory: qualification/suite
run: |
python3 runner.py fixtures --compiler moonbot-compiler-beta --option O2 --option O3
python3 runner.py mega --compiler moonbot-compiler-beta --option O2 --option O3
scripts/run_forms_gate.sh \
../../.moonbot/toolchain/bin/fpc ../../.moonbot/toolchain/etc/fpc.cfg \
ci-linux-forms
scripts/run_service_regressions_gate.sh \
../../.moonbot/toolchain/bin/fpc ../../.moonbot/toolchain/etc/fpc.cfg \
ci-linux-service
scripts/run_rtl_api_surface_gate.sh ci-linux-rtl-api
scripts/run_namespace_scope_gate.sh \
../../.moonbot/toolchain/bin/fpc ../../.moonbot/toolchain/etc/fpc.cfg \
ci-linux-namespace
scripts/run_monitor_gate.sh \
../../.moonbot/toolchain/bin/fpc ../../.moonbot/toolchain/etc/fpc.cfg \
ci-linux-monitor
scripts/run_exception_capture_gate.sh \
../../.moonbot/toolchain/bin/fpc ../../.moonbot/toolchain/etc/fpc.cfg \
ci-linux-exception
scripts/run_linux_psabieh_gate.sh \
../../.moonbot/toolchain/bin/fpc ../../.moonbot/toolchain/etc/fpc.cfg \
ci-linux-psabieh
scripts/run_rtti_gettypes_gate.sh \
../../.moonbot/toolchain/bin/fpc ../../.moonbot/toolchain/etc/fpc.cfg \
ci-linux-rtti
- name: Run RTL semantic matrix
run: python3 RTL-test/run.py
- name: Run product smoke
run: |
./build qualification/suite/tests/smoke/build_smoke.dpr debug
test "$(./qualification/suite/tests/smoke/build_smoke)" = MOONBOT_BUILD_OK
./build qualification/suite/tests/smoke/build_smoke.dpr release
test "$(./qualification/suite/tests/smoke/build_smoke)" = MOONBOT_BUILD_OK
win64-x86-64:
runs-on: windows-2022
timeout-minutes: 90
steps:
- uses: actions/checkout@v4
- name: Install FPC 3.2.2 bootstrap
shell: powershell
run: |
.\scripts\Install-FpcBootstrap.ps1 `
-Destination "$env:RUNNER_TEMP\fpc-3.2.2"
- name: Build product toolchain
shell: powershell
run: |
.\build.ps1 compiler `
-Bootstrap "$env:RUNNER_TEMP\fpc-3.2.2\bin\i386-win32\fpc.exe"
- name: Run platform contracts
shell: powershell
run: |
python .\qualification\build-driver\ptop_contract.py
python .\qualification\build-driver\version_contract.py
python .\qualification\build-driver\project_profile_gate.py
.\qualification\build-driver\atomic_swap.ps1
.\qualification\pinned-unit\run.ps1
.\qualification\memory-manager\profile_contract.ps1
.\qualification\memory-manager\medium_arenas.ps1
.\qualification\suite\scripts\run_extra_corpus.ps1
python .\qualification\suite\tests\test_runner_contracts.py
python .\qualification\suite\tests\test_issue_tracker_runner.py
python .\qualification\suite\tests\test_qualification_contracts.py
python .\qualification\suite\tests\test_devil_runner_contracts.py
- name: Run issue-tracker contract
shell: powershell
run: |
python .\qualification\suite\scripts\run_issue_tracker_corpus.py `
--fpc .\.moonbot\toolchain\bin\x86_64-win64\ppcx64.exe `
--fpc-config .\.moonbot\toolchain\bin\x86_64-win64\fpc.cfg `
--output .\.qualification\ci-win64-tracker --jobs 4 --enforce
- name: Run Win64 language and integration gates
shell: powershell
run: |
$Compiler = '.\.moonbot\toolchain\bin\x86_64-win64\ppcx64.exe'
$Config = '.\.moonbot\toolchain\bin\x86_64-win64\fpc.cfg'
python .\qualification\suite\scripts\run_win64_repair_gate.py `
$Compiler $Config . ci-win64-repairs
.\qualification\suite\scripts\run_service_regressions_gate.ps1 `
$Compiler $Config ci-win64-service
.\qualification\suite\scripts\run_rtl_api_surface_gate.ps1 `
ci-win64-rtl-api
.\qualification\suite\scripts\run_rtti_gettypes_gate.ps1 `
$Compiler $Config ci-win64-rtti
.\qualification\suite\scripts\run_forms_gate.ps1 `
$Compiler $Config ci-win64-forms
- name: Run RTL semantic matrix
shell: powershell
run: python .\RTL-test\run.py
- name: Run product smoke
shell: powershell
run: |
.\build.ps1 .\qualification\suite\tests\smoke\build_smoke.dpr debug
If ((& .\qualification\suite\tests\smoke\build_smoke.exe) -ne `
'MOONBOT_BUILD_OK') { throw 'Debug product smoke failed' }
.\build.ps1 .\qualification\suite\tests\smoke\build_smoke.dpr release
If ((& .\qualification\suite\tests\smoke\build_smoke.exe) -ne `
'MOONBOT_BUILD_OK') { throw 'Release product smoke failed' }