Skip to content

Commit b256a03

Browse files
committed
Merge branch 'main' into libc-takeover
2 parents 34af15c + d9a280f commit b256a03

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+2140
-1154
lines changed

.github/workflows/CargoPublish.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ permissions:
2222

2323
jobs:
2424
publish-hyperlight-packages:
25-
runs-on: [self-hosted, Linux, X64, "1ES.Pool=hld-kvm-amd"]
25+
runs-on: [self-hosted, Linux, X64, "1ES.Pool=hld-kvm-amd", "JobId=publish-hyperlight-packages-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}"]
2626

2727
if: ${{ startsWith(github.ref, 'refs/heads/release/v') || inputs.dry_run }}
2828

@@ -32,7 +32,7 @@ jobs:
3232
fetch-depth: 0
3333
fetch-tags: true
3434

35-
- uses: hyperlight-dev/ci-setup-workflow@v1.8.0
35+
- uses: hyperlight-dev/ci-setup-workflow@v1.9.0
3636
with:
3737
rust-toolchain: "1.89"
3838

.github/workflows/Coverage.yml

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
2+
3+
name: Weekly Coverage
4+
5+
on:
6+
pull_request:
7+
paths:
8+
- .github/workflows/Coverage.yml
9+
schedule:
10+
# Runs every Monday at 06:00 UTC
11+
- cron: '0 6 * * 1'
12+
workflow_dispatch: # Allow manual trigger
13+
14+
env:
15+
CARGO_TERM_COLOR: always
16+
RUST_BACKTRACE: full
17+
18+
permissions:
19+
contents: read
20+
21+
defaults:
22+
run:
23+
shell: bash
24+
25+
jobs:
26+
coverage:
27+
timeout-minutes: 90
28+
strategy:
29+
fail-fast: false
30+
matrix:
31+
hypervisor: [kvm]
32+
cpu: [amd]
33+
runs-on: ${{ fromJson(
34+
format('["self-hosted", "Linux", "X64", "1ES.Pool=hld-{0}-{1}"]',
35+
matrix.hypervisor,
36+
matrix.cpu)) }}
37+
steps:
38+
- uses: actions/checkout@v6
39+
40+
- uses: hyperlight-dev/ci-setup-workflow@v1.9.0
41+
with:
42+
rust-toolchain: "1.89"
43+
env:
44+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
45+
46+
- name: Fix cargo home permissions
47+
run: |
48+
sudo chown -R $(id -u):$(id -g) /opt/cargo || true
49+
50+
- name: Rust cache
51+
uses: Swatinem/rust-cache@v2
52+
with:
53+
shared-key: "${{ runner.os }}-debug"
54+
cache-on-failure: "true"
55+
56+
- name: Build guest binaries
57+
run: just guests
58+
59+
- name: Install nightly toolchain
60+
run: |
61+
rustup toolchain install nightly
62+
rustup component add llvm-tools --toolchain nightly
63+
64+
- name: Generate coverage report
65+
run: just coverage-ci ${{ matrix.hypervisor }}
66+
67+
- name: Coverage summary
68+
run: |
69+
echo '## Code Coverage Report' >> $GITHUB_STEP_SUMMARY
70+
echo '' >> $GITHUB_STEP_SUMMARY
71+
if [ -f target/coverage/summary.txt ]; then
72+
echo '```' >> $GITHUB_STEP_SUMMARY
73+
cat target/coverage/summary.txt >> $GITHUB_STEP_SUMMARY
74+
echo '```' >> $GITHUB_STEP_SUMMARY
75+
else
76+
echo 'Coverage report was not generated.' >> $GITHUB_STEP_SUMMARY
77+
fi
78+
echo '' >> $GITHUB_STEP_SUMMARY
79+
echo '> For a detailed per-file breakdown, download the **HTML coverage report** from the Artifacts section below.' >> $GITHUB_STEP_SUMMARY
80+
81+
- name: Upload HTML coverage report
82+
uses: actions/upload-artifact@v7
83+
with:
84+
name: coverage-html-${{ matrix.hypervisor }}-${{ matrix.cpu }}
85+
path: target/coverage/html/
86+
if-no-files-found: error
87+
88+
- name: Upload LCOV coverage report
89+
uses: actions/upload-artifact@v7
90+
with:
91+
name: coverage-lcov-${{ matrix.hypervisor }}-${{ matrix.cpu }}
92+
path: target/coverage/lcov.info
93+
if-no-files-found: error
94+
95+
notify-failure:
96+
runs-on: ubuntu-latest
97+
needs: [coverage]
98+
if: always() && needs.coverage.result == 'failure'
99+
permissions:
100+
issues: write
101+
steps:
102+
- name: Checkout code
103+
uses: actions/checkout@v6
104+
105+
- name: Notify Coverage Failure
106+
run: ./dev/notify-ci-failure.sh --title="Weekly Coverage Failure - ${{ github.run_number }}" --labels="area/ci-periodics,area/testing,lifecycle/needs-review"
107+
env:
108+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.github/workflows/CreateRelease.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,13 +24,13 @@ jobs:
2424
build-rust-ubuntu:
2525
# see https://github.com/orgs/community/discussions/26286#discussioncomment-3251208 for why we need to check the ref
2626
if: ${{ contains(github.ref, 'refs/heads/release/') }} || ${{ github.ref=='refs/heads/main' }}
27-
runs-on: [self-hosted, Linux, X64, "1ES.Pool=hld-kvm-amd"]
27+
runs-on: [self-hosted, Linux, X64, "1ES.Pool=hld-kvm-amd", "JobId=build-rust-ubuntu-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}"]
2828
needs: [release-blocker-check]
2929

3030
steps:
3131
- uses: actions/checkout@v6
3232

33-
- uses: hyperlight-dev/ci-setup-workflow@v1.8.0
33+
- uses: hyperlight-dev/ci-setup-workflow@v1.9.0
3434
with:
3535
rust-toolchain: "1.89"
3636
env:
@@ -51,7 +51,7 @@ jobs:
5151
steps:
5252
- uses: actions/checkout@v6
5353

54-
- uses: hyperlight-dev/ci-setup-workflow@v1.8.0
54+
- uses: hyperlight-dev/ci-setup-workflow@v1.9.0
5555
with:
5656
rust-toolchain: "1.89"
5757
env:
@@ -98,7 +98,7 @@ jobs:
9898
publish:
9999
# see https://github.com/orgs/community/discussions/26286#discussioncomment-3251208 for why we need to check the ref
100100
if: ${{ contains(github.ref, 'refs/heads/release/') }} || ${{ github.ref=='refs/heads/main' }}
101-
runs-on: [self-hosted, Linux, X64, "1ES.Pool=hld-kvm-amd"]
101+
runs-on: [self-hosted, Linux, X64, "1ES.Pool=hld-kvm-amd", "JobId=create-release-publish-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}"]
102102
needs:
103103
[
104104
build-rust-ubuntu,
@@ -120,7 +120,7 @@ jobs:
120120
fetch-depth: 0
121121
fetch-tags: true
122122

123-
- uses: hyperlight-dev/ci-setup-workflow@v1.8.0
123+
- uses: hyperlight-dev/ci-setup-workflow@v1.9.0
124124
with:
125125
rust-toolchain: "1.89"
126126
env:

.github/workflows/RustNightly.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,15 +32,19 @@ jobs:
3232
cpu: [amd, intel]
3333
config: [debug, release]
3434
runs-on: ${{ fromJson(
35-
format('["self-hosted", "Linux", "X64", "1ES.Pool=hld-{0}-{1}"]',
35+
format('["self-hosted", "Linux", "X64", "1ES.Pool=hld-{0}-{1}", "JobId=musl-{2}-{3}-{4}-{5}"]',
3636
matrix.hypervisor == 'mshv3' && 'azlinux3-mshv' || matrix.hypervisor,
37-
matrix.cpu)) }}
37+
matrix.cpu,
38+
matrix.config,
39+
github.run_id,
40+
github.run_number,
41+
github.run_attempt)) }}
3842
env:
3943
TARGET_TRIPLE: x86_64-unknown-linux-musl
4044
steps:
4145
- uses: actions/checkout@v6
4246

43-
- uses: hyperlight-dev/ci-setup-workflow@v1.8.0
47+
- uses: hyperlight-dev/ci-setup-workflow@v1.9.0
4448
with:
4549
rust-toolchain: "1.89"
4650
env:

.github/workflows/copilot-setup-steps.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ jobs:
77
# The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
88
copilot-setup-steps:
99
# run on AMD when the run_id ends in 0,2,4,6,8, Intel when it ends in 1,3,5,7,9 so as not to over use one pool too much
10-
runs-on: ${{ (endsWith(github.run_id, '0') || endsWith(github.run_id, '2') || endsWith(github.run_id, '4') || endsWith(github.run_id, '6') || endsWith(github.run_id, '8')) && fromJSON('["self-hosted", "Linux", "X64", "1ES.Pool=hld-kvm-amd"]') || fromJSON('["self-hosted", "Linux", "X64", "1ES.Pool=hld-kvm-intel"]') }}
10+
runs-on: ${{ (endsWith(github.run_id, '0') || endsWith(github.run_id, '2') || endsWith(github.run_id, '4') || endsWith(github.run_id, '6') || endsWith(github.run_id, '8')) && fromJSON(format('["self-hosted", "Linux", "X64", "1ES.Pool=hld-kvm-amd", "JobId=copilot-setup-steps-{0}-{1}-{2}"]', github.run_id, github.run_number, github.run_attempt)) || fromJSON(format('["self-hosted", "Linux", "X64", "1ES.Pool=hld-kvm-intel", "JobId=copilot-setup-steps-{0}-{1}-{2}"]', github.run_id, github.run_number, github.run_attempt)) }}
1111

1212
# Set the permissions to the lowest permissions possible needed for your steps.
1313
# Copilot will be given its own token for its operations.
@@ -27,7 +27,7 @@ jobs:
2727
with:
2828
components: rustfmt
2929

30-
- uses: hyperlight-dev/ci-setup-workflow@v1.8.0
30+
- uses: hyperlight-dev/ci-setup-workflow@v1.9.0
3131
with:
3232
rust-toolchain: "1.89"
3333
env:

.github/workflows/dep_benchmarks.yml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,14 +73,17 @@ jobs:
7373
if: ${{ inputs.docs_only == 'false' }}
7474
timeout-minutes: 30
7575
runs-on: ${{ fromJson(
76-
format('["self-hosted", "{0}", "X64", "1ES.Pool=hld-{1}-{2}"]',
76+
format('["self-hosted", "{0}", "X64", "1ES.Pool=hld-{1}-{2}", "JobId=run-benchmarks-{3}-{4}-{5}"]',
7777
inputs.hypervisor == 'hyperv-ws2025' && 'Windows' || 'Linux',
7878
inputs.hypervisor == 'hyperv-ws2025' && 'win2025' || inputs.hypervisor == 'mshv3' && 'azlinux3-mshv' || inputs.hypervisor,
79-
inputs.cpu)) }}
79+
inputs.cpu,
80+
github.run_id,
81+
github.run_number,
82+
github.run_attempt)) }}
8083
steps:
8184
- uses: actions/checkout@v6
8285

83-
- uses: hyperlight-dev/ci-setup-workflow@v1.8.0
86+
- uses: hyperlight-dev/ci-setup-workflow@v1.9.0
8487
with:
8588
rust-toolchain: "1.89"
8689
env:

.github/workflows/dep_build_guests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ jobs:
2929
build-guests:
3030
if: ${{ inputs.docs_only == 'false' }}
3131
timeout-minutes: 15
32-
runs-on: [self-hosted, Linux, X64, "1ES.Pool=hld-kvm-amd"]
32+
runs-on: [self-hosted, Linux, X64, "1ES.Pool=hld-kvm-amd", "JobId=build-guests-${{ inputs.config }}-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}"]
3333
steps:
3434
- uses: actions/checkout@v6
3535

36-
- uses: hyperlight-dev/ci-setup-workflow@v1.8.0
36+
- uses: hyperlight-dev/ci-setup-workflow@v1.9.0
3737
with:
3838
rust-toolchain: "1.89"
3939
env:

.github/workflows/dep_build_test.yml

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,18 @@ jobs:
3939
if: ${{ inputs.docs_only == 'false' }}
4040
timeout-minutes: 45
4141
runs-on: ${{ fromJson(
42-
format('["self-hosted", "{0}", "X64", "1ES.Pool=hld-{1}-{2}"]',
42+
format('["self-hosted", "{0}", "X64", "1ES.Pool=hld-{1}-{2}", "JobId=build-and-test-{3}-{4}-{5}-{6}"]',
4343
inputs.hypervisor == 'hyperv-ws2025' && 'Windows' || 'Linux',
4444
inputs.hypervisor == 'hyperv-ws2025' && 'win2025' || inputs.hypervisor == 'mshv3' && 'azlinux3-mshv' || inputs.hypervisor,
45-
inputs.cpu)) }}
45+
inputs.cpu,
46+
inputs.config,
47+
github.run_id,
48+
github.run_number,
49+
github.run_attempt)) }}
4650
steps:
4751
- uses: actions/checkout@v6
4852

49-
- uses: hyperlight-dev/ci-setup-workflow@v1.8.0
53+
- uses: hyperlight-dev/ci-setup-workflow@v1.9.0
5054
with:
5155
rust-toolchain: "1.89"
5256
env:

.github/workflows/dep_code_checks.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,11 @@ jobs:
2626
linux-checks:
2727
if: ${{ inputs.docs_only == 'false' }}
2828
timeout-minutes: 30
29-
runs-on: ["self-hosted", "Linux", "X64", "1ES.Pool=hld-kvm-amd"]
29+
runs-on: ["self-hosted", "Linux", "X64", "1ES.Pool=hld-kvm-amd", "JobId=linux-checks-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}"]
3030
steps:
3131
- uses: actions/checkout@v6
3232

33-
- uses: hyperlight-dev/ci-setup-workflow@v1.8.0
33+
- uses: hyperlight-dev/ci-setup-workflow@v1.9.0
3434
with:
3535
rust-toolchain: "1.89"
3636
env:
@@ -98,11 +98,11 @@ jobs:
9898
windows-checks:
9999
if: ${{ inputs.docs_only == 'false' }}
100100
timeout-minutes: 30
101-
runs-on: ["self-hosted", "Windows", "X64", "1ES.Pool=hld-win2025-amd"]
101+
runs-on: ["self-hosted", "Windows", "X64", "1ES.Pool=hld-win2025-amd", "JobId=windows-checks-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}"]
102102
steps:
103103
- uses: actions/checkout@v6
104104

105-
- uses: hyperlight-dev/ci-setup-workflow@v1.8.0
105+
- uses: hyperlight-dev/ci-setup-workflow@v1.9.0
106106
with:
107107
rust-toolchain: "1.89"
108108
env:

.github/workflows/dep_fuzzing.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,15 +23,15 @@ permissions:
2323
jobs:
2424
fuzz:
2525
if: ${{ inputs.docs_only == 'false' }}
26-
runs-on: [ self-hosted, Linux, X64, "1ES.Pool=hld-kvm-amd" ]
26+
runs-on: [ self-hosted, Linux, X64, "1ES.Pool=hld-kvm-amd", "JobId=fuzz-${{ matrix.target }}-${{ github.run_id }}-${{ github.run_number }}-${{ github.run_attempt }}" ]
2727
strategy:
2828
matrix:
2929
target: ${{ fromJson(inputs.targets) }}
3030
steps:
3131
- name: Checkout code
3232
uses: actions/checkout@v6
3333

34-
- uses: hyperlight-dev/ci-setup-workflow@v1.8.0
34+
- uses: hyperlight-dev/ci-setup-workflow@v1.9.0
3535
with:
3636
rust-toolchain: "1.89"
3737
env:

0 commit comments

Comments
 (0)