Skip to content

Commit d9e4e04

Browse files
Run CI on self-hosted runners (#19)
Mirror QuantConnect/Lean#9540 (commit c57fd18b): run the build/test workflow on self-hosted runners directly inside a job-level quantconnect/lean:foundation container (--cpus 12 --memory 12g) instead of the GitHub-hosted ubuntu runner + addnab/docker-run wrapper. Drops the disk-cleanup step and the docker-run wrapper (build/test now run as a normal step inside the container; secrets via container env), and adds a concurrency group (cancel-in-progress). Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent b3020ed commit d9e4e04

1 file changed

Lines changed: 23 additions & 22 deletions

File tree

.github/workflows/gh-actions.yml

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,26 @@ on:
44
push:
55
branches: ["*"]
66

7+
concurrency:
8+
group: ${{ github.workflow }}-${{ github.ref }}
9+
cancel-in-progress: true
10+
711
jobs:
812
build:
9-
runs-on: ubuntu-24.04
13+
runs-on: self-hosted
14+
container:
15+
image: quantconnect/lean:foundation
16+
options: --cpus 12 --memory 12g
17+
env:
18+
QC_THETADATA_USERNAME: ${{ secrets.THETADATA_USERNAME }}
19+
QC_THETADATA_PASSWORD: ${{ secrets.THETADATA_PASSWORD }}
20+
QC_JOB_USER_ID: ${{ secrets.QC_JOB_USER_ID }}
21+
QC_API_ACCESS_TOKEN: ${{ secrets.QC_API_ACCESS_TOKEN }}
22+
QC_JOB_ORGANIZATION_ID: ${{ secrets.QC_JOB_ORGANIZATION_ID }}
1023
steps:
1124
- name: Checkout
1225
uses: actions/checkout@v2
1326

14-
- name: Liberate disk space
15-
uses: jlumbroso/free-disk-space@main
16-
with:
17-
tool-cache: true
18-
large-packages: false
19-
docker-images: false
20-
swap-storage: false
21-
2227
- name: Checkout Lean Same Branch
2328
id: lean-same-branch
2429
uses: actions/checkout@v2
@@ -38,16 +43,12 @@ jobs:
3843
- name: Move Lean
3944
run: mv Lean ../Lean
4045

41-
- name: Run Image
42-
uses: addnab/docker-run-action@v3
43-
with:
44-
image: quantconnect/lean:foundation
45-
options: -v /home/runner/work:/__w --workdir /__w/Lean.DataSource.ThetaData/Lean.DataSource.ThetaData -e QC_THETADATA_USERNAME=${{ secrets.THETADATA_USERNAME }} -e QC_THETADATA_PASSWORD=${{ secrets.THETADATA_PASSWORD }} -e QC_JOB_USER_ID=${{ secrets.QC_JOB_USER_ID }} -e QC_API_ACCESS_TOKEN=${{ secrets.QC_API_ACCESS_TOKEN }} -e QC_JOB_ORGANIZATION_ID=${{ secrets.QC_JOB_ORGANIZATION_ID }}
46-
shell: bash
47-
run: |
48-
# Build QuantConnect.ThetaData
49-
dotnet build ./QuantConnect.ThetaData/QuantConnect.DataSource.ThetaData.csproj /p:Configuration=Release /v:quiet /p:WarningLevel=1 && \
50-
# Build QuantConnect.ThetaData.Tests
51-
dotnet build ./QuantConnect.ThetaData.Tests/QuantConnect.DataSource.ThetaData.Tests.csproj /p:Configuration=Release /v:quiet /p:WarningLevel=1 && \
52-
# Run QuantConnect.ThetaData.Tests
53-
dotnet test ./QuantConnect.ThetaData.Tests/bin/Release/QuantConnect.Lean.DataSource.ThetaData.Tests.dll
46+
- name: Run build and tests
47+
run: |
48+
# Build QuantConnect.ThetaData
49+
dotnet build ./QuantConnect.ThetaData/QuantConnect.DataSource.ThetaData.csproj /p:Configuration=Release /v:quiet /p:WarningLevel=1 && \
50+
# Build QuantConnect.ThetaData.Tests
51+
dotnet build ./QuantConnect.ThetaData.Tests/QuantConnect.DataSource.ThetaData.Tests.csproj /p:Configuration=Release /v:quiet /p:WarningLevel=1 && \
52+
# Run QuantConnect.ThetaData.Tests
53+
dotnet test ./QuantConnect.ThetaData.Tests/bin/Release/QuantConnect.Lean.DataSource.ThetaData.Tests.dll
54+

0 commit comments

Comments
 (0)