-
Notifications
You must be signed in to change notification settings - Fork 0
feat(ci): infra integration #15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -9,27 +9,13 @@ on: | |||||||||||||||||
| - 'lib/**' | ||||||||||||||||||
| - 'src/**' | ||||||||||||||||||
| - 'test/**' | ||||||||||||||||||
| - 'ci/**' | ||||||||||||||||||
| - 'CMakeLists.txt' | ||||||||||||||||||
| workflow_dispatch: | ||||||||||||||||||
| inputs: | ||||||||||||||||||
| skip_build: | ||||||||||||||||||
| description: 'Skip build step (use existing artifacts)' | ||||||||||||||||||
| type: boolean | ||||||||||||||||||
| default: false | ||||||||||||||||||
| workflow_call: | ||||||||||||||||||
| inputs: | ||||||||||||||||||
| skip_build: | ||||||||||||||||||
| description: 'Skip build step (packages already built by caller)' | ||||||||||||||||||
| type: boolean | ||||||||||||||||||
| default: true | ||||||||||||||||||
|
|
||||||||||||||||||
| jobs: | ||||||||||||||||||
| # Build CUDA package for testing | ||||||||||||||||||
| # Skipped when called from release.yml (packages already built) | ||||||||||||||||||
| build-cuda-package: | ||||||||||||||||||
| name: Build linux-x64-cuda | ||||||||||||||||||
| if: ${{ inputs.skip_build != true }} | ||||||||||||||||||
| if: ${{ github.repository == 'lloyal-ai/lloyal.node' }} | ||||||||||||||||||
| runs-on: ubuntu-22.04 | ||||||||||||||||||
|
|
||||||||||||||||||
| steps: | ||||||||||||||||||
|
|
@@ -83,155 +69,14 @@ jobs: | |||||||||||||||||
| retention-days: 1 | ||||||||||||||||||
| compression-level: 0 | ||||||||||||||||||
|
|
||||||||||||||||||
| # GPU Integration Tests via Cloud Run | ||||||||||||||||||
| # Runs real GPU tests on NVIDIA L4 | ||||||||||||||||||
| # | ||||||||||||||||||
| # L4 GPU Requirements (as of 2024): | ||||||||||||||||||
| # - Driver: 535.216.03 (supports CUDA 12.2.2 max) | ||||||||||||||||||
| # - Minimum: 4 CPU, 16 GiB memory | ||||||||||||||||||
| # - Regions: us-central1, us-east4, europe-west1, europe-west4, asia-southeast1 | ||||||||||||||||||
| # - Quota: 3 L4 GPUs per region (default) | ||||||||||||||||||
| # GPU Integration Tests via Cloud Run (L4) | ||||||||||||||||||
| # Infrastructure details are in the private lloyal-infra repo | ||||||||||||||||||
| gpu-integration: | ||||||||||||||||||
| name: GPU Tests (L4) | ||||||||||||||||||
| needs: build-cuda-package | ||||||||||||||||||
| runs-on: ubuntu-latest | ||||||||||||||||||
| # Run if build succeeded OR was skipped (packages from caller) | ||||||||||||||||||
| if: ${{ !cancelled() && (needs.build-cuda-package.result == 'success' || needs.build-cuda-package.result == 'skipped') }} | ||||||||||||||||||
|
|
||||||||||||||||||
| if: ${{ github.repository == 'lloyal-ai/lloyal.node' && needs.build-cuda-package.result == 'success' }} | ||||||||||||||||||
| uses: lloyal-ai/lloyal-infra/.github/workflows/gpu-integration.yml@main | ||||||||||||||||||
|
||||||||||||||||||
| uses: lloyal-ai/lloyal-infra/.github/workflows/gpu-integration.yml@main | |
| uses: lloyal-ai/lloyal-infra/.github/workflows/gpu-integration.yml@v1 |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
secrets: inherit forwards all secrets to the reusable workflow. If only specific secrets are required, map them explicitly to reduce unnecessary secret exposure to the called workflow.
| secrets: inherit | |
| secrets: | |
| # TODO: Restrict this list to only the secrets required by | |
| # lloyal-ai/lloyal-infra/.github/workflows/gpu-integration.yml | |
| # Example mappings (replace with actual required secrets): | |
| # CLOUD_RUN_SERVICE_ACCOUNT_KEY: ${{ secrets.CLOUD_RUN_SERVICE_ACCOUNT_KEY }} | |
| # GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }} | |
| # GCP_REGION: ${{ secrets.GCP_REGION }} |
| Original file line number | Diff line number | Diff line change | ||||||
|---|---|---|---|---|---|---|---|---|
|
|
@@ -307,15 +307,15 @@ jobs: | |||||||
| path: packages/${{ matrix.package }}/ | ||||||||
| retention-days: 1 | ||||||||
|
|
||||||||
| # GPU Integration Tests (reusable workflow) | ||||||||
| # GPU Integration Tests (reusable workflow from private infra repo) | ||||||||
| gpu-tests: | ||||||||
| name: GPU Tests | ||||||||
| needs: build-and-test | ||||||||
| uses: ./.github/workflows/gpu-test.yml | ||||||||
| uses: lloyal-ai/lloyal-infra/.github/workflows/gpu-integration.yml@main | ||||||||
| secrets: inherit | ||||||||
|
||||||||
| secrets: inherit | |
| secrets: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
Copilot
AI
Feb 12, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The reusable workflow is referenced from another repository using @main. This is brittle (upstream changes can break releases unexpectedly) and increases supply-chain risk. Prefer pinning the reusable workflow to a tagged release or a specific commit SHA and updating intentionally.
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
skip_buildis still exposed as aworkflow_dispatchinput, but the workflow no longer has aworkflow_callpath and there is no mechanism here to provide “existing artifacts” whenbuild-cuda-packageis skipped. As-is, dispatching withskip_build: truewill likely leavegpu-integrationwithout thepackage-linux-x64-cudaartifact. Consider removing this input, or adding logic to fetch artifacts from a known source when build is skipped.