Skip to content

feat: add build graph schemas and CI diagnostic tools with updated FA… #18

feat: add build graph schemas and CI diagnostic tools with updated FA…

feat: add build graph schemas and CI diagnostic tools with updated FA… #18

name: CppMega self-hosted CI
on:
pull_request:
branches: [main]
push:
branches: [main]
workflow_dispatch:
concurrency:
group: cppmega-ci-${{ github.ref }}
cancel-in-progress: true
jobs:
mac-contracts:
name: macOS model and data contracts
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
runs-on: [self-hosted, macOS, ARM64, cppmega-macos]
timeout-minutes: 20
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
- name: Run repository-owned macOS lane
shell: bash
env:
CPPMEGA_MLX_REFERENCE_ROOT: ${{ vars.CPPMEGA_MLX_REFERENCE_ROOT }}
CPPMEGA_MLX_REFERENCE_COMMIT: ${{ vars.CPPMEGA_MLX_REFERENCE_COMMIT }}
CPPMEGA_RECIPE_PARITY_PEER_ROOT: ${{ vars.CPPMEGA_MLX_REFERENCE_ROOT }}
CPPMEGA_RECIPE_PARITY_PEER_COMMIT: ${{ vars.CPPMEGA_MLX_REFERENCE_COMMIT }}
CPPMEGA_RECIPE_PARITY_PYTHON: ${{ vars.CPPMEGA_RECIPE_PARITY_PYTHON }}
run: |
set -euo pipefail
python_bin="${CPPMEGA_CI_PYTHON:-/Volumes/external/sources/.venvs/cppmega.source/bin/python}"
export MEGATRON_LM_REPO=/Volumes/external/sources/Megatron-LM-core_v0.18.0
test -x "${python_bin}"
test "$(git rev-parse HEAD)" = "${GITHUB_SHA}"
expected_tree="$(git rev-parse HEAD^{tree})"
"${python_bin}" scripts/ci/run_repository_ci.py lane \
--lanes-config "${GITHUB_WORKSPACE}/configs/ci/lanes.json" \
--lane macos-contracts \
--repo-root "${GITHUB_WORKSPACE}" \
--receipt-dir "${RUNNER_TEMP}/cppmega-repository-ci-macos-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}" \
--python "${python_bin}" \
--expected-source-commit "${GITHUB_SHA}" \
--expected-source-tree "${expected_tree}"
- name: Upload macOS lane receipt
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: cppmega-repository-ci-macos-${{ github.run_id }}-${{ github.run_attempt }}
path: ${{ runner.temp }}/cppmega-repository-ci-macos-${{ github.run_id }}-${{ github.run_attempt }}
if-no-files-found: error
retention-days: 14
linux-portable:
name: Linux portable data contracts
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
runs-on: [self-hosted, Linux, X64, cppmega]
timeout-minutes: 20
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4.3.1
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5.6.0
with:
python-version: "3.13"
- name: Install portable lane dependencies
run: python -m pip install --disable-pip-version-check pytest numpy pyarrow tokenizers boto3 zstandard
- name: Run repository-owned Linux lane
run: |
set -euo pipefail
test "$(git rev-parse HEAD)" = "${GITHUB_SHA}"
expected_tree="$(git rev-parse HEAD^{tree})"
python scripts/ci/run_repository_ci.py lane \
--lanes-config "${GITHUB_WORKSPACE}/configs/ci/lanes.json" \
--lane linux-contracts \
--repo-root "${GITHUB_WORKSPACE}" \
--receipt-dir "${RUNNER_TEMP}/cppmega-repository-ci-linux-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}" \
--python python \
--expected-source-commit "${GITHUB_SHA}" \
--expected-source-tree "${expected_tree}"
- name: Upload Linux lane receipt
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: cppmega-repository-ci-linux-${{ github.run_id }}-${{ github.run_attempt }}
path: ${{ runner.temp }}/cppmega-repository-ci-linux-${{ github.run_id }}-${{ github.run_attempt }}
if-no-files-found: error
retention-days: 14